NX 节点应用程序:生成的 dist/.../package.json 文件根本不包含“依赖项”部分

问题描述 投票:0回答:2
  • 我有一个 NX monorepo
  • 我使用命令创建了一个名为
    nodeapp1
    应用程序的新 CLI node.js 应用程序:
    • nx g @nrwl/node:application nodeapp1
  • 运行
    nx serve nodeapp1
    -或-
    nx build nodeapp1
    时,它生成一个
    package.json
    文件:
    dist/apps/nodeapp1/package.json
    ,但它根本不包含
    dependencies
    部分。
  • 这似乎是使用 esbuild 的 NX 应用程序的问题,但不是 webpack。

dist/apps/nodeapp1/package.json:

这是它生成的整个

package.json
文件:

{
  "name": "nodeapp1",
  "version": "0.0.1",
  "main": "./main.js"
}

以下是其他一些相关文件的内容:

应用程序/nodeapp1/src/main.ts:

import * as figlet from 'figlet';
console.log(figlet.textSync('figlet', 'ANSI Shadow'));

apps/nodeapp1/project.json(全部默认,我没有更改任何内容):

{
    "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": []
}

我尝试过的东西:

我尝试将其添加到 nx.json:

"pluginsConfig": {
    "@nrwl/js": {
        "analyzeSourceFiles": true
    }
}

我还看到了像提到的

updateBuildableProjectDepsInPackageJson
buildableProjectDepsInPackageJsonType
这样的设置,并尝试将它们放入
project.json
...尽管它们可能不相关,因为它们似乎特定于 Angular 应用程序?

问题:

  • 我需要做些什么才能包含
    dependencies
    部分吗? 我一直在网上搜索,但找不到任何有帮助的内容。
  • 在 stackoverflow 和 github 问题等上还有很多其他问题,人们遇到了不同的问题,即包含某些依赖项,但缺少一些依赖项。
  • 而我的问题是
    dependencies 
    部分根本不存在。

编辑:

 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)
node.js node-modules package.json monorepo nomachine-nx
2个回答
0
投票

https://github.com/nrwl/nx/issues/19092#issuecomment-1768269238

我像你一样通过了所有步骤,但它不起作用,直到我从 .gitignore 中删除了 package-lock.json 并运行

nx reset
,然后所有依赖项都返回到它们的位置...


0
投票

尝试使用 nx 依赖性检查解析器 https://nx.dev/nx-api/eslint-plugin/documents/dependency-checks

© www.soinside.com 2019 - 2024. All rights reserved.