- I have a NX monorepo
- I created a new CLI node.js app called
nodeapp1
app using command:nx g @nrwl/node:application nodeapp1
- When running
nx serve nodeapp1
-or-nx build nodeapp1
, it does generate apackage.json
file:dist/apps/nodeapp1/package.json
, but it does not include adependencies
section at all. - This seems to be a problem for NX apps using esbuild, but not webpack.
dist/apps/nodeapp1/package.json:
Here is the entire package.json
file that it generates:
{
"name": "nodeapp1",
"version": "0.0.1",
"main": "./main.js"
}
Here's the content of some other relevant files:
apps/nodeapp1/src/main.ts:
import * as figlet from 'figlet';
console.log(figlet.textSync('figlet', 'ANSI Shadow'));
apps/nodeapp1/project.json (all defaults, I haven't changed anything):
{
"name": "nodeapp1",
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "apps/nodeapp1/src",
"projectType": "application",
"targets": {
"build": {
"executor": "@nrwl/esbuild:esbuild",
"outputs": ["{options.outputPath}"],
"defaultConfiguration": "production",
"options": {
"platform": "node",
"outputPath": "dist/apps/nodeapp1",
"format": ["cjs"],
"bundle": false,
"main": "apps/nodeapp1/src/main.ts",
"tsConfig": "apps/nodeapp1/tsconfig.app.json",
"assets": ["apps/nodeapp1/src/assets"],
"generatePackageJson": true,
"esbuildOptions": {
"sourcemap": true,
"outExtension": {
".js": ".js"
}
}
},
"configurations": {
"development": {},
"production": {
"esbuildOptions": {
"sourcemap": false,
"outExtension": {
".js": ".js"
}
}
}
}
},
"serve": {
"executor": "@nrwl/js:node",
"defaultConfiguration": "development",
"options": {
"buildTarget": "nodeapp1:build"
},
"configurations": {
"development": {
"buildTarget": "nodeapp1:build:development"
},
"production": {
"buildTarget": "nodeapp1:build:production"
}
}
},
"lint": {
"executor": "@nrwl/linter:eslint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["apps/nodeapp1/**/*.ts"]
}
},
"test": {
"executor": "@nrwl/jest:jest",
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
"options": {
"jestConfig": "apps/nodeapp1/jest.config.ts",
"passWithNoTests": true
},
"configurations": {
"ci": {
"ci": true,
"codeCoverage": true
}
}
}
},
"tags": []
}
Stuff I've tried:
I've tried adding this to nx.json:
"pluginsConfig": {
"@nrwl/js": {
"analyzeSourceFiles": true
}
}
I've also seen settings like updateBuildableProjectDepsInPackageJson
and buildableProjectDepsInPackageJsonType
mentioned, and tried putting them in project.json
... although maybe they're not relevant, as they seem to be specific to Angular app?
Question:
- Is there something I need to do for it to include a
dependencies
section? I've been scouring the web, and I can't find anything that helps. - There's plenty of other issues here on stackoverflow, and github issues etc where people are having a different problem of some dependencies being includes, but some missing.
- Whereas my issue is that the
dependencies
section doesn't exist at all.
Edit:
- I see to have made some progress, apparently adding
"thirdParty": false
into myproject.json
might solve it: - But when I do that, nx serve/build errors out with:
Maximum call stack size exceeded
> NX Maximum call stack size exceeded
at recur (node_modules\@nrwl\esbuild\src\executors\esbuild\lib\get-extra-dependencies.js:7:19)
at recur (node_modules\@nrwl\esbuild\src\executors\esbuild\lib\get-extra-dependencies.js:29:13)
at recur (node_modules\@nrwl\esbuild\src\executors\esbuild\lib\get-extra-dependencies.js:29:13)
at recur (node_modules\@nrwl\esbuild\src\executors\esbuild\lib\get-extra-dependencies.js:29:13)
at recur (node_modules\@nrwl\esbuild\src\executors\esbuild\lib\get-extra-dependencies.js:29:13)
at recur (node_modules\@nrwl\esbuild\src\executors\esbuild\lib\get-extra-dependencies.js:29:13)
at recur (node_modules\@nrwl\esbuild\src\executors\esbuild\lib\get-extra-dependencies.js:7:19)