tripss / nx-extend Goto Github PK
View Code? Open in Web Editor NEWNx Workspaces builders and tools
License: MIT License
Nx Workspaces builders and tools
License: MIT License
The current enum is listed only up to node14
Hi,
thanks for the strapi extension!
Currently it is not possible to use nx-libs in the strapi-server.
eg. I have a JS/ lib @my-nx-workspace/utils
, then I can't require it like const utils = require('@my-nx-workspace/utils');
inside strapi.
Any ideas how to solve that mix of old require and new ES6 importing?
Thanks
The executors upload schema path needs to be updated to ./src/executors/upload/schema.json
in nx-extend/packages/gcp-storage/executors.json
When migrating to NX 16, I still have references for @nrwl/devkit blocking the upgrade in the yarn.lock
Using yarn nx report
, I've inspected several community plugins installed on our monorepo, and found that nx-extend/strapi
is installing a previous version of devkit: @nrwl/devkit.
yarn why @nrwl/devkit
yarn why v1.22.19
[1/4] π€ Why do we have the module "@nrwl/devkit"...?
[2/4] π Initialising dependency graph...
[3/4] π Finding dependency...
[4/4] π‘ Calculating file sizes...
=> Found "@nrwl/[email protected]"
info Has been hoisted to "@nrwl/devkit"
info Reasons this module exists
- Hoisted from "@nx-extend#strapi#@nrwl#devkit"
- Hoisted from "@nx-extend#strapi#@nrwl#workspace#@nrwl#devkit"
info Disk size without dependencies: "1.01MB"
info Disk size with unique dependencies: "1.66MB"
info Disk size with transitive dependencies: "3.72MB"
info Number of shared dependencies: 26
=> Found "@nx/devkit#@nrwl/[email protected]"
info This module exists because "@nx#devkit" depends on it.
info Disk size without dependencies: "32KB"
info Disk size with unique dependencies: "972KB"
info Disk size with transitive dependencies: "4.67MB"
info Number of shared dependencies: 28
=> Found "@nx-extend/core#@nrwl/[email protected]"
info This module exists because "@nx-extend#strapi#@nx-extend#core" depends on it.
β¨ Done in 0.89s.
I've seen the upgrade to 16 is in-progress in the PRs, any news about it?
β‘οΈ #120 (comment)
I cannot see any references to alpha or beta in npm/github releases:
I could even help to test the strapi package with latest version of nx :)
Running a cloud function used to work with v17.0.x
npx @google-cloud/functions-framework --source=dist/apps/cloud-functions --target=CloudFunctions
Function 'CloudFunctions' is not defined in the provided module.
Did you specify the correct target function to execute?
Could not load the function, shutting down.
From what I realized: the build in the dist
is different between the two versions:
Nx Report (17.0.3):
Node : 20.9.0
OS : darwin-arm64
npm : 10.2.4
nx (global) : 17.0.3
nx : 17.0.3
@nx/js : 17.0.3
@nx/jest : 17.0.3
@nx/linter : 17.0.3
@nx/eslint : 17.0.3
@nx/workspace : 17.0.3
@nx/angular : 17.0.3
@nx/cypress : 17.0.3
@nx/devkit : 17.0.3
@nx/esbuild : 17.0.3
@nx/eslint-plugin : 17.0.3
@nx/nest : 17.0.3
@nx/node : 17.0.3
@nrwl/tao : 17.0.3
@nx/web : 17.0.3
@nx/webpack : 17.0.3
typescript : 5.1.6
---------------------------------------
Community plugins:
@nx-extend/gcp-functions : 10.0.1
Compiled version before update (17.0.3):
/******/ (() => { // webpackBootstrap
/******/ "use strict";
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it uses a non-standard name for the exports (exports).
(() => {
var exports = __webpack_exports__;
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.CloudFunctions = void 0;
const { foo = 'testBar' } = process.env;
const CloudFunctions = async (req, res) => {
res.status(200).send(foo);
};
exports.CloudFunctions = CloudFunctions;
})();
var __webpack_export_target__ = exports;
for(var i in __webpack_exports__) __webpack_export_target__[i] = __webpack_exports__[i];
if(__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, "__esModule", { value: true });
/******/ })()
;
//# sourceMappingURL=main.js.map
Nx Report (17.1.3):
Node : 20.9.0
OS : darwin-arm64
npm : 10.2.4
nx (global) : 17.1.3
nx : 17.1.3
@nx/js : 17.1.3
@nx/jest : 17.1.3
@nx/linter : 17.1.3
@nx/eslint : 17.1.3
@nx/workspace : 17.1.3
@nx/angular : 17.1.3
@nx/cypress : 17.1.3
@nx/devkit : 17.1.3
@nx/esbuild : 17.1.3
@nx/eslint-plugin : 17.1.3
@nx/nest : 17.1.3
@nx/node : 17.1.3
@nrwl/tao : 17.1.3
@nx/web : 17.1.3
@nx/webpack : 17.1.3
nx-cloud : 16.5.2
typescript : 5.2.2
---------------------------------------
Community plugins:
@nx-extend/gcp-functions : 10.0.1
Compiled version after update (17.1.3):
/******/ (() => { // webpackBootstrap
/******/ "use strict";
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it uses a non-standard name for the exports (exports).
(() => {
var exports = __webpack_exports__;
Object.defineProperty(exports, "__esModule", ({ value: true }));
const { foo = 'testBar' } = process.env;
const CloudFunctions = async (req, res) => {
res.status(200).send(foo);
};
exports.CloudFunctions = CloudFunctions;
})();
/******/ })()
;
//# sourceMappingURL=main.js.map
After upgrading to Nx 13 @nx-extend/gcp-functions fails to build:
Cannot find module '@nrwl/workspace/src/utilities/run-webpack'
Require stack:
- /path/node_modules/@nx-extend/gcp-functions/src/builders/build/build.impl.js
- /path/node_modules/@nrwl/tao/src/shared/workspace.js
- /path/node_modules/@nrwl/tao/src/commands/run.js
- /path/node_modules/@nrwl/tao/index.js
- /path/node_modules/@nrwl/cli/lib/run-cli.js
Currently when you run the tests, it will start the application or applications if you have the dependencies. Then it will run the tests and kill playwright. The process of starting the apps and playwright takes some time. This also makes that rerunning tests takes quite some time, even though the change to a test is very small.
It would be very useful if the applications could continue to run after the playwright test run had finished. Then it should watch for code change to the tests and rerun the tests if needed.
In Pulumi, it's not possible right now to reference code from libraries etc. At least it seems to not build it properly.
What I propose would be a way to set the working directory for the Pulumi executors.
That way, I can disable TypeScript for my project, and have esbuild build it first before running up, and then run it towards the dist folder.
Where do I start with this, if I am to contribute with a PR?
When using this package with "@nx/cypress": "16.3.2" I am getting this error:
`Error: Cannot find module '@nrwl/cypress/src/executors/cypress/cypress.impl'
Require stack:
I noticed that when we use 'cypress' as a runner the logic inside packages/e2e-runner/src/executors/run/run.impl.ts, tries to import it from @nrwl/cypress
which has been renamed to @nx/cypress. So changing
const cypressExecutor = require('@nrwl/cypress/src/executors/cypress/cypress.impl').default
to
const cypressExecutor = require('@nx/cypress/src/executors/cypress/cypress.impl').default
should resolve the issue.
Please let me know if you need more information or details.
running a fresh nx project with angular + strapi
after running nx g @nx-extend/strapi:init
it errors out, but if i cd into the strapi app and run npm it finishes the install.
however, trying to build the app yields this error:
this doesn't happen with the build for the angular app.
using node 18.15.0 LTS
Given I have an Nx monorepo with hundres of dependencies in package.json
And given I have a Cloud Function apps/my-cf
When apps/my-cf/package.json
only contains 3 dependencies
How does the deploy
executor ensure that I only deploy the GCP function with those 3 packages (and their transitive deps) in node_modules
?
If I try to create a new strapi application with node 16 I get the following error
error [email protected]: The engine "node" is incompatible with this module. Expected version ">=10.16.0 <=14.x.x". Got "16.13.0"
The project gets created but the nx.json is not updated and project.json is missing from the app
I use the @nx-extend/e2e-runner
with the cypress
runner and the following config
{
"executor": "@nx-extend/e2e-runner:run",
"options": {
"runner": "cypress",
"cypressConfig": "apps/web-app-e2e/cypress.config.ts",
"devServerTarget": "web-app:serve:testing",
"testingType": "e2e",
"headless": false,
"watch": true,
"targets": [
{
"target": "socket-api:serve:testing",
"checkUrl": "https://socket.rc.local:3002/health-check",
"checkMaxTries": 300,
"reuseExistingServer": true,
"rejectUnauthorized": false
},
{
"target": "api:serve:testing",
"checkUrl": "https://api.rc.local:3001/health-check",
"checkMaxTries": 300,
"reuseExistingServer": true,
"rejectUnauthorized": false
}
]
},
}
The tests run perfectly fine with this setup; but killing cypress using ctrl+c
, fails to kill the web-app:serve:testing
properly.
It gives the following output
Stopping target "socket-api:serve:testing"
Stopping target "api:serve:testing"
The Test Runner unexpectedly exited via a exit event with signal SIGINTPlease search Cypress documentation for possible solutions:
Check if there is a GitHub issue describing this crash:
https://github.com/cypress-io/cypress/issues
Consider opening a new issue.
Platform: darwin-arm64 (23.1.0)
Cypress Version: 13.5.1
The fact that the web-app:serve:testing
task stays active keeps the port occupied and therefor prevents the tests from being re-started (as well as using up resources).
When installing strapi with nx generate @nx-extend/strapi:init
my project has errors with installing dependencies.
From terminal
Error while installing dependencies:
Keep trying!
Oh, it seems that you encountered errors while installing dependencies in your project.
Don't give up, your project was created correctly.
Fix the issues mentioned in the installation errors and try to run the following command:
Regardless of the actual state of the server, the e2e-runner will always report the state of the target as not-live at least once.
We can look at the waitFor
method in the nx-target
class
nx-extend/packages/e2e-runner/src/executors/run/utils/nx-target.ts
Lines 109 to 131 in 8502c93
It will always set the serverIsLive
variable to false
at the first run of the while-loop, resulting in this log message.
Could we replace the line 114; the assignment of serverIsLive
with let serverIsLive = await waitFn();
This should correctly set the initial state, giving a slight boost to start-up times and removing a somewhat confusing log message.
Furthermore it might be nice to add a log message to when we re-use an existing service.
nx-extend/packages/e2e-runner/src/executors/run/utils/nx-target.ts
Lines 59 to 67 in 8502c93
Would be happy to send in a MR if you agree with these point!
Which should build something along the lines of:
"serve": {
"executor": "nx:run-commands",
"options": {
"buildTarget": "$myproject:build",
"commands": [
{
"command": "nodemon --watch ./dist/apis/$myproject --exec functions-framework --target=$FunctionName --source ./dist/apis/$myproject"
}
]
}
},
Is it possible to add Pulumi Refresh support? Can I contribute with a PR for this somehow? If so, how do I start?
After updating to the latest version, I am getting the following error:
Cannot find module '@angular-devkit/core'
Not sure why, because I am only using @nx-extend/pulumi
. Any idea of why this may have started happening?
when I run nx g @nx-extend/strapi:init
, it fails on dependency installation, says that the project was created correctly, but no project.json file is generated.
If I try to build the strapi app from the project root it crashes. If I cd into the strapi app and run the build it works.
When I build from the project root it runs the executor "@nx-extend/strapi:build"
, in the project.json, but when I run the build from within the app, it runs strapi build
in the package.json.
Node: 16 LTS
NPM: 18.19.2
Yarn: 1.22.19
strapi: 4.3.9
nx-extend/strapi version 3.1.2
The error I get when I build from the project root is:
ModuleNotFoundError: Module not found: Error: Can't resolve '@strapi/icons/CarretDown' in '/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/design-system/dist/Select'
Did you mean 'CarretDown.js'?
BREAKING CHANGE: The request '@strapi/icons/CarretDown' failed to resolve only because it was resolved as fully specified
(probably because the origin is strict EcmaScript Module, e. g. a module with javascript mimetype, a '*.mjs' file, or a '*.js' file where the package.json contains '"type": "module"').
The extension in the request is mandatory for it to be fully specified.
Add the extension to the request.
at /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/webpack/lib/Compilation.js:2016:28
at /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/webpack/lib/NormalModuleFactory.js:798:13
at eval (eval at create (/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:10:1)
at /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/webpack/lib/NormalModuleFactory.js:270:22
at eval (eval at create (/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:9:1)
at /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/webpack/lib/NormalModuleFactory.js:434:22
at /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/webpack/lib/NormalModuleFactory.js:116:11
at /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/webpack/lib/NormalModuleFactory.js:670:25
at /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/webpack/lib/NormalModuleFactory.js:855:8
at /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/webpack/lib/NormalModuleFactory.js:975:5
resolve '@strapi/icons/CarretDown' in '/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/design-system/dist/Select'
Parsed request is a module
using description file: /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/design-system/package.json (relative path: ./dist/Select)
Field 'browser' doesn't contain a valid alias configuration
resolve as module
/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/design-system/dist/Select/node_modules doesn't exist or is not a directory
/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/design-system/dist/node_modules doesn't exist or is not a directory
/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/design-system/node_modules doesn't exist or is not a directory
/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/node_modules doesn't exist or is not a directory
/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/node_modules doesn't exist or is not a directory
looking for modules in /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules
existing directory /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/icons
using description file: /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/icons/package.json (relative path: .)
using exports field: ./dist/CarretDown
using description file: /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/icons/package.json (relative path: ./dist/CarretDown)
Field 'browser' doesn't contain a valid alias configuration
/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/icons/dist/CarretDown doesn't exist
/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/node_modules doesn't exist or is not a directory
looking for modules in /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules
existing directory /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/@strapi/icons
using description file: /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/@strapi/icons/package.json (relative path: .)
using description file: /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/@strapi/icons/package.json (relative path: ./CarretDown)
Field 'browser' doesn't contain a valid alias configuration
/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/@strapi/icons/CarretDown doesn't exist
/home/ngaritagoitia/Documentos/Playground/node_modules doesn't exist or is not a directory
/home/ngaritagoitia/Documentos/node_modules doesn't exist or is not a directory
/home/ngaritagoitia/node_modules doesn't exist or is not a directory
/home/node_modules doesn't exist or is not a directory
/node_modules doesn't exist or is not a directory
looking for modules in /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/@strapi/admin/node_modules
/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/@strapi/admin/node_modules/@strapi/icons doesn't exist
ModuleNotFoundError: Module not found: Error: Can't resolve '@strapi/icons/CarretDown' in '/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/design-system/dist/Select'
Did you mean 'CarretDown.js'?
BREAKING CHANGE: The request '@strapi/icons/CarretDown' failed to resolve only because it was resolved as fully specified
(probably because the origin is strict EcmaScript Module, e. g. a module with javascript mimetype, a '*.mjs' file, or a '*.js' file where the package.json contains '"type": "module"').
The extension in the request is mandatory for it to be fully specified.
Add the extension to the request.
at /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/webpack/lib/Compilation.js:2016:28
at /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/webpack/lib/NormalModuleFactory.js:798:13
at eval (eval at create (/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:10:1)
at /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/webpack/lib/NormalModuleFactory.js:270:22
at eval (eval at create (/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:9:1)
at /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/webpack/lib/NormalModuleFactory.js:434:22
at /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/webpack/lib/NormalModuleFactory.js:116:11
at /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/webpack/lib/NormalModuleFactory.js:670:25
at /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/webpack/lib/NormalModuleFactory.js:855:8
at /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/webpack/lib/NormalModuleFactory.js:975:5
resolve '@strapi/icons/CarretDown' in '/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/design-system/dist/Select'
Parsed request is a module
using description file: /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/design-system/package.json (relative path: ./dist/Select)
Field 'browser' doesn't contain a valid alias configuration
resolve as module
/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/design-system/dist/Select/node_modules doesn't exist or is not a directory
/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/design-system/dist/node_modules doesn't exist or is not a directory
/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/design-system/node_modules doesn't exist or is not a directory
/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/node_modules doesn't exist or is not a directory
/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/node_modules doesn't exist or is not a directory
looking for modules in /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules
existing directory /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/icons
using description file: /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/icons/package.json (relative path: .)
using exports field: ./dist/CarretDown
using description file: /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/icons/package.json (relative path: ./dist/CarretDown)
Field 'browser' doesn't contain a valid alias configuration
/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/cms/node_modules/@strapi/icons/dist/CarretDown doesn't exist
/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/apps/node_modules doesn't exist or is not a directory
looking for modules in /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules
existing directory /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/@strapi/icons
using description file: /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/@strapi/icons/package.json (relative path: .)
using description file: /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/@strapi/icons/package.json (relative path: ./CarretDown)
Field 'browser' doesn't contain a valid alias configuration
/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/@strapi/icons/CarretDown doesn't exist
/home/ngaritagoitia/Documentos/Playground/node_modules doesn't exist or is not a directory
/home/ngaritagoitia/Documentos/node_modules doesn't exist or is not a directory
/home/ngaritagoitia/node_modules doesn't exist or is not a directory
/home/node_modules doesn't exist or is not a directory
/node_modules doesn't exist or is not a directory
looking for modules in /home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/@strapi/admin/node_modules
/home/ngaritagoitia/Documentos/Playground/nombre-repositorio/node_modules/@strapi/admin/node_modules/@strapi/icons doesn't exist
Hi there,
I have been trying to recreate a monorepo that I have and the strapi build fails with the newer project.
The new project has "@nx-extend/strapi": "^3.0.2"
in the package.json and when I run nx build <stapi-package-name>
on a newly created stapi package it fails with the following:
$ nx build strapi-pkg --verbose
> nx run strapi-pkg:build
Starting the compilation for TypeScript files in packages/strapi-pkg/src
> NX Debug Failure.
Error: Debug Failure.
at /Users/me/dev/monorepo/node_modules/@strapi/typescript-utils/node_modules/typescript/lib/typescript.js:19675:89
at String.replace (<anonymous>)
at formatStringFromArgs (/Users/me/dev/monorepo/node_modules/@strapi/typescript-utils/node_modules/typescript/lib/typescript.js:19675:21)
at Object.createCompilerDiagnostic (/Users/me/dev/monorepo/node_modules/@strapi/typescript-utils/node_modules/typescript/lib/typescript.js:19789:20)
at tryReadFile (/Users/me/dev/monorepo/node_modules/@strapi/typescript-utils/node_modules/typescript/lib/typescript.js:40100:40)
at Object.getParsedCommandLineOfConfigFile (/Users/me/dev/monorepo/node_modules/@strapi/typescript-utils/node_modules/typescript/lib/typescript.js:40046:30)
at module.exports (/Users/me/dev/monorepo/node_modules/@strapi/typescript-utils/lib/utils/resolve-config-options.js:9:43)
at Object.run (/Users/me/dev/monorepo/node_modules/@strapi/typescript-utils/lib/compilers/basic.js:19:55)
at Object.module.exports [as compile] (/Users/me/dev/monorepo/node_modules/@strapi/typescript-utils/lib/compile.js:13:12)
at /Users/me/dev/monorepo/node_modules/@nx-extend/strapi/src/executors/build/build.impl.js:26:42
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
> NX Running target "strapi-pkg:build" failed
Failed tasks:
- strapi-pkg:build
Hint: run the command with --verbose for more details.
Reverting to version ^2.1.2 solves the issue.
I'm not sure what is causing the issue above as there is very little in the error messages. Any ideas what is causing this? For the moment I will stick with version 2.1.2.
Thanks
I'm thinking of contributing some pre-processing options for the terraform executor. Basically, when using a monorepo, working directory and context become critical, and plan/apply times can skyrocket due to node_modules. Even ignoring these files doesn't stop them from being evaluated locally before the plan/apply executes.
a "preProcessing" options config would allow you to specify a directory to move the tf files to prior to running tf commands. This would allow you to use relative directories with modules so that they work in editors for syntax highlighting/completion/linting, but execute quickly for local and ci plan/apply because the context directories would be smaller.
Would you support a contribution for this type of feature?
Actual behavior:
Now when you try to generate the app using NX Console extension, the console execute the command with the --dry-run flag, but the app is created anyways
Expected behavior:
The app should not be created...
Getting this error relating to projectGraph not existing when trying to build Strapi.
Additional info:
If you are leveraging `readCachedProjectGraph()` directly then you will need to refactor your usage to first ensure that
the ProjectGraph is created by calling `await createProjectGraphAsync()` somewhere before attempting to read the data.
Callstack:
at readCachedProjectGraph (/Users/gannawayb/Documents/VS_Code/PROJECT/node_modules/@nrwl/workspace/node_modules/nx/src/project-graph/project-graph.js:28:15)
at /Users/gannawayb/Documents/VS_Code/PROJECT/node_modules/@nx-extend/strapi/src/utils/create-package-json.js:12:121
at Generator.next (<anonymous>)
at /Users/gannawayb/Documents/VS_Code/PROJECT/node_modules/@nx-extend/strapi/node_modules/tslib/tslib.js:167:75
at new Promise (<anonymous>)
at Object.__awaiter (/Users/gannawayb/Documents/VS_Code/PROJECT/node_modules/@nx-extend/strapi/node_modules/tslib/tslib.js:163:16)
at createPackageJson (/Users/gannawayb/Documents/VS_Code/PROJECT/node_modules/@nx-extend/strapi/src/utils/create-package-json.js:11:20)
at /Users/gannawayb/Documents/VS_Code/PROJECT/node_modules/@nx-extend/strapi/src/executors/build/build.impl.js:41:59
at Generator.next (<anonymous>)
at fulfilled (/Users/gannawayb/Documents/VS_Code/PROJECT/node_modules/@nx-extend/strapi/node_modules/tslib/tslib.js:164:62)
It was happening intermittently, but got worse when we migrated to the latest version of NX 16.10.0
Is there some additional step to take with the Strapi plugin to bring it into line?
It's not clear how to upgrade the version of this as migrate doesn't work...
This is a great repo, but I almost didn't pick it because it didn't have any documentation for the Pulumi part. Perhaps other parts are missing documenation too.
You know what they say.
Code is only as good as its documentation.
That's because people can't use features they don't know exist. And that's a shame, because this stuff is great.
Getting this error when trying to build strapi.
Both in the root package.json
or the apps folder there is no:
@strapi/strapi/lib/commands/builders
Full error:
npx nx build cms --verbose
> nx run cms:build
> NX Cannot find module '@strapi/strapi/lib/commands/builders'
Require stack:
- /Users/brian/dev/md/sales_service/node_modules/@nx-extend/strapi/src/executors/build/build.impl.js
- /Users/brian/dev/md/sales_service/node_modules/nx/src/config/schema-utils.js
- /Users/brian/dev/md/sales_service/node_modules/nx/src/command-line/run/executor-utils.js
- /Users/brian/dev/md/sales_service/node_modules/nx/src/command-line/run/run.js
- /Users/brian/dev/md/sales_service/node_modules/nx/bin/run-executor.js
Error: Cannot find module '@strapi/strapi/lib/commands/builders'
Require stack:
- /Users/brian/dev/md/sales_service/node_modules/@nx-extend/strapi/src/executors/build/build.impl.js
- /Users/brian/dev/md/sales_service/node_modules/nx/src/config/schema-utils.js
- /Users/brian/dev/md/sales_service/node_modules/nx/src/command-line/run/executor-utils.js
- /Users/brian/dev/md/sales_service/node_modules/nx/src/command-line/run/run.js
- /Users/brian/dev/md/sales_service/node_modules/nx/bin/run-executor.js
at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
at Module._load (node:internal/modules/cjs/loader:922:27)
at Module.require (node:internal/modules/cjs/loader:1143:19)
at require (node:internal/modules/cjs/helpers:119:18)
at Object.<anonymous> (/Users/brian/dev/md/sales_service/node_modules/@nx-extend/strapi/src/executors/build/build.impl.js:5:20)
at Module._compile (node:internal/modules/cjs/loader:1256:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
at Module.load (node:internal/modules/cjs/loader:1119:32)
at Module._load (node:internal/modules/cjs/loader:960:12)
at Module.require (node:internal/modules/cjs/loader:1143:19)
When building using yarn nx run strapi:build it generates a dist folder with needed stuff to run the project. It runs just fine but there are missing stuff from the webpack build compared to the yarn nx run strapi:serve build.
You can notice you wont have the internationalisation or any other plugins in settings panel if running the the dist/apps/strapi using yarn start or a custom server as when running the serve you will have all the functionalities in the admin panel
Any workarounds for this?
Getting the following issue when running nx run-many -t up
in my project through GitHub Actions:
error: --yes or --skip-preview must be passed in to proceed when running in non-interactive mode
How can I pass this argument in to pulumi up
? I think it should either be default, or an option.
Hi! First of all, thanks for creating this plugin!
Do you know if there is possibility to inject .env
variables into plugin config?
Instead of having static values in "checkUrl", I'd like values from .env file. Especially in checkUrl
field.
I checked nx
docs but I didn't find info about this.
{
"root": "apps/my-front/",
"targets": {
"e2e": {
"executor": "@nx-extend/e2e-runner:run",
"options": {
"runner": "cypress",
"cypressConfig": "./cypress.config.ts",
"devServerTarget": "my-front:serve",
"testingType": "e2e",
"targets": [
{
"target": "my-api:serve",
"checkUrl": "http://localhost:3555", // Use a dynamic value different for local and CI based on .env
"checkMaxTries": 50,
"rejectUnauthorized": false
}
]
}
}
}
}
Hi, thanks a lot for the great software!
I noticed that when i run npx nx run <package-name>:build
in the workspace root, i get an error:
Package subpath './dist/commands/builders/admin' is not defined by "exports" in <workspace-root>/node_modules/@strapi/strapi/package.json
Here's a repro using the latest nx: https://github.com/certainlyakey/nx-extendstrapi-repro/. However, the same error (just with ./dist/commands/builders
) appears for me even when downgrading to @nx-extend/strapi 6.1.8 and nx 16.
The build command works fine when run in the package folder as npm run build
(although on first launch it asks twice to install the admin dependencies).
Hey I found your awesome plugins through the nx plugin directory.
I've played around a bit and have bben able to generate a cloud function.
When I try to build it I get below error.
Seems to be in the NX code itself. Weird is that if I add a log in the NX code the object is indeed the npm packageManager object.
Any ideas? Should I ask this in the NX repo instead?
PS C:\lander\devprojects\test-nx> nx build testit --region us-central1 --verbose
nx run testit:build --region us-central1
asset main.js 773 bytes [compared for emit] (name: main) 1 related asset
webpack 5.88.2 compiled successfully (bcb26f377fbb6c20)
NX Unknown package manager: [object Object]
Error: Unknown package manager: [object Object]
at getLockFileName (C:\lander\devprojects\test-nx\node_modules\nx\src\plugins\js\lock-file\lock-file.js:115:11)
at createLockFile (C:\lander\devprojects\test-nx\node_modules\nx\src\plugins\js\lock-file\lock-file.js:128:44)
at generatePackageJson (C:\lander\devprojects\test-nx\node_modules@nx-extend\gcp-functions\src\utils\generate-package-json.js:68:149)
at C:\lander\devprojects\test-nx\node_modules@nx-extend\gcp-functions\src\executors\build\build.impl.js:12:61
at Generator.next ()
at fulfilled (C:\lander\devprojects\test-nx\node_modules@nx-extend\gcp-functions\node_modules\tslib\tslib.js:112:62)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
NX Running target build for project testit failed
Failed tasks:
Hey,
a few commands are still missing in the extension.
One important for me is:
strapi generate
and also that arguments are passed onto the next command, eg.:
nx r strapi-app:serve --watch-admin
is just executing npx strapi develop
instead of npx strapi develop --watch-admin
Some more commands:
strapi admin:create-user
strapi templates:generate
strapi routes:list
all the commands are listed here: https://docs.strapi.io/developer-docs/latest/developer-resources/cli/CLI.html
Nx has changed to not relay on the angular devkit anymore.
Maybe the dependency should be changed as well.
Furthermore if it is needed I would prefer having it in the package json of this package as dependency or at least as peer dependency.
Fresh installing: @nx-extend/translations
and starting with the add
builder results in an error:
Cannot find module '@angular-devkit/architect'
Require stack:
- /Users/lukasholzer/Sites/wireflow/node_modules/@nrwl/tao/src/commands/ngcli-adapter.js
- /Users/lukasholzer/Sites/wireflow/node_modules/@nrwl/tao/src/commands/run.js
- /Users/lukasholzer/Sites/wireflow/node_modules/@nrwl/tao/index.js
- /Users/lukasholzer/Sites/wireflow/node_modules/@nrwl/cli/lib/run-cli.js
working with:
"@nrwl/cli": "^12.10.0",
"@nrwl/cypress": "^12.10.0",
"@nrwl/eslint-plugin-nx": "^12.10.0",
"@nrwl/jest": "^12.10.0",
"@nrwl/linter": "^12.10.0",
"@nrwl/nest": "^12.10.0",
"@nrwl/node": "^12.10.0",
"@nrwl/nx-cloud": "latest",
"@nrwl/react": "^12.10.0",
"@nrwl/tao": "^12.10.0",
"@nrwl/web": "^12.10.0",
"@nrwl/workspace": "^12.10.0",
"@nx-extend/translations": "^5.1.0",
I noticed that there doesn't seem to be a Terraform destroy command available in the Terraform executors. I wanted to inquire whether this is by design or if there are plans to include a destroy command in future updates.
Thank you for your time and effort in maintaining the nx-extend plugin. I appreciate the work!
I get a MODULE_NOT_FOUND
error when I import libraries into Pulumi. Do you have an idea of why?
After updating Strapi version from 4.7 to 4.8 I'm getting the following error when running nx run strapi-project:build
:
ModuleNotFoundError: Module not found: Error: Package path ./theme/blackboard.css is not exported from package /project-path/strapi/node_modules/codemirror (see exports field in /project-path/strapi/node_modules/codemirror/package.json)
at /path/node_modules/webpack/lib/Compilation.js:2016:28
at /path/node_modules/webpack/lib/NormalModuleFactory.js:798:13
at eval (eval at create (/path/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:10:1)
at /path/node_modules/webpack/lib/NormalModuleFactory.js:270:22
at eval (eval at create (/path/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:9:1)
at /path/node_modules/webpack/lib/NormalModuleFactory.js:434:22
at /path/node_modules/webpack/lib/NormalModuleFactory.js:116:11
at /path/node_modules/webpack/lib/NormalModuleFactory.js:670:25
at /path/node_modules/webpack/lib/NormalModuleFactory.js:855:8
at /path/node_modules/webpack/lib/NormalModuleFactory.js:975:5
ModuleNotFoundError: Module not found: Error: Package path ./theme/blackboard.css is not exported from package /project-path/strapi/node_modules/codemirror (see exports field in /project-path/strapi/node_modules/codemirror/package.json)
Running just the yarn build
(the strapi command, not via nx) works.
Using:
Node : 18.14.1
OS : darwin arm64
yarn : 1.22.19
nx : 15.7.2
@nrwl/jest : 15.7.2
@nrwl/linter : 15.7.2
@nrwl/workspace : 15.7.2
@nrwl/angular : 15.7.2
@nrwl/cli : 15.7.2
@nrwl/cypress : 15.7.2
@nrwl/devkit : 15.7.2
@nrwl/eslint-plugin-nx : 15.7.2
@nrwl/js : 15.7.2
@nrwl/nest : 15.7.2
@nrwl/node : 15.7.2
@nrwl/tao : 15.7.2
@nrwl/webpack : 15.7.2
typescript : 4.9.5
---------------------------------------
Community plugins:
@nx-extend/strapi : 3.4.0
@nx-extend/terraform : 0.0.2
We use the @nx-extend/e2e-runner
package to start related application before we run our tests.
These applications however, do not have properly signed certificates since they are used in a test environment. They instead use self-signed certificates.
Would it be possible to add an option to ignore ssl error when checking if the related applications are started.
It seems like updating the axios instance in is-api-live-ts
with a custom https-agent would already solve this.
This should probably be configurable and an opt-in.
import axios from 'axios'
import https from 'https'
export const isApiLive = async (url: string): Promise<boolean> => {
const agent = new https.Agent({
rejectUnauthorized: false
});
return axios.get(url, {
timeout: 500,
httpsAgent: agent
}).then((response) => {
return response.status >= 200 && response.status < 300
}).catch(() => {
return false
})
}
This should be updated to use beta
commands now.
Getting this:
βββ¬ @nx-extend/pulumi 3.1.3
βββ¬ @nx-extend/core 4.3.0
βββ β unmet peer [email protected]: found 2.6.1
I wonder what other libraries are doing with this kind of error to avoid getting out of date.
Right now, the verbose logging is always enabled for CI. I don't think that should be the case. The pulumi up
output is very verbose because of it.
Is there any option to enforce terminating processes after tests execution? At this moment frontend-server or backend server is still alive.
I have to use "reuseExistingServer": true
in each project.json
configuration, but it doesn't solve the problem when frontends are served under the same port.
yarn test-e2e-frontend-all
We could add a new flag for the target: terminateExistingServer
. In the case where the port is already taken, we could terminate the process and after call launchProcess
function.
Perfect if it would be possible to kill apps after tests executions or after terminating e2e target.
To follow the mono repository approach, it should be possible to install the dependencies for Strapi in the general node_modules folder, instead of in a separate one inside the app folder.
Is this possible ?
Hey thanks for this repo, do you have a sample for run it because I don't understand how choose the app to deploy, what is the .firebase.json syntax for --site ? thanks in advance for your assistance :)-
Since nx 16.x @nx/workspace/src/executors/run-commands/run-commands.impl
has been refactored, it has to be changed to the new one nx/src/executors/run-commands/run-commands.impl
.
Please check the following patchοΌ
diff --git a/node_modules/@nx-extend/e2e-runner/src/executors/run/run.impl.js b/node_modules/@nx-extend/e2e-runner/src/executors/run/run.impl.js
index 7b70746..52b598c 100644
--- a/node_modules/@nx-extend/e2e-runner/src/executors/run/run.impl.js
+++ b/node_modules/@nx-extend/e2e-runner/src/executors/run/run.impl.js
@@ -41,7 +41,7 @@ function endToEndRunner(options, context) {
}
else if (runner === 'run-commands') {
// eslint-disable-next-line @typescript-eslint/no-var-requires
- const runCommandsExecutor = require('@nx/workspace/src/executors/run-commands/run-commands.impl').default;
+ const runCommandsExecutor = require('nx/src/executors/run-commands/run-commands.impl').default;
success = (yield runCommandsExecutor(rest, context)).success;
}
else {
Hello! When generating the lockfile during a build, the generated package.json doesn't contain pg
"build": {
"executor": "@nx-extend/strapi:build",
"outputs": ["{options.outputPath}"],
"options": {
"outputPath": "dist/apps/strapi"
},
"configurations": {
"production": {
"production": true,
"generateLockFile": true
}
}
},
Here is the generated package.json:
{
"name": "strapi",
"private": true,
"version": "0.1.0",
"description": "A Strapi application",
"scripts": {
"develop": "strapi develop",
"start": "strapi start",
"build": "strapi build",
"strapi": "strapi"
},
"devDependencies": {},
"dependencies": {
"@fingerprintjs/fingerprintjs": "3.3.6",
"@strapi/design-system": "1.6.5",
"@strapi/helper-plugin": "4.8.2",
"@strapi/icons": "1.6.5",
"@strapi/plugin-i18n": "4.10.6",
"@strapi/plugin-users-permissions": "4.10.6",
"@strapi/strapi": "4.8.2",
"axios": "0.25.0",
"better-sqlite3": "8.0.1",
"codemirror5": "5.65.13",
"date-fns": "2.29.3",
"fractional-indexing": "3.2.0",
"highlight.js": "10.7.3",
"immer": "9.0.19",
"invariant": "2.2.4",
"js-cookie": "3.0.1",
"lodash": "4.17.21",
"markdown-it": "12.3.2",
"markdown-it-abbr": "1.0.4",
"markdown-it-container": "3.0.0",
"markdown-it-deflist": "2.1.0",
"markdown-it-emoji": "2.0.2",
"markdown-it-footnote": "3.0.3",
"markdown-it-ins": "3.0.1",
"markdown-it-mark": "3.0.1",
"markdown-it-sub": "1.0.0",
"markdown-it-sup": "1.0.0",
"pluralize": "8.0.0",
"prop-types": "15.7.2",
"qs": "6.11.0",
"react": "18.2.0",
"react-copy-to-clipboard": "5.1.0",
"react-dnd": "11.1.3",
"react-dnd-html5-backend": "11.1.3",
"react-dom": "18.2.0",
"react-error-boundary": "3.1.4",
"react-fast-compare": "3.2.0",
"react-helmet": "6.1.0",
"react-intl": "6.2.8",
"react-is": "18.2.0",
"react-query": "3.24.3",
"react-redux": "7.2.9",
"react-router": "6.4.3",
"react-router-dom": "6.4.3",
"react-select": "3.2.0",
"react-window": "1.8.8",
"redux": "4.2.1",
"reselect": "4.1.7",
"sanitize-html": "2.7.3",
"semver": "7.3.8",
"styled-components": "5.3.3",
"yup": "0.32.11"
},
"author": {
"name": "A Strapi developer"
},
"strapi": {
"uuid": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx"
},
"engines": {
"node": ">=14.19.1 <=18.x.x",
"npm": ">=6.0.0"
},
"license": "MIT"
}
The error when starting my docker container:
yarn run v1.22.19
$ strapi start
Knex: run
$ npm install pg --save
Cannot find module 'pg'
Require stack:
- /usr/src/app/node_modules/knex/lib/dialects/postgres/index.js
So far in docker, I add a step yarn add pg
after installing the modules, but it doesn't seem like the "right" way ^^
Is there a way to add pg
to the generated package.json automatically?
Hi,
thanks a lot for your work, but i was not sure wheter this project is allready finis, because of the todo items.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.