【问题标题】:How do I install dependencies for a single package when using npm workspaces?使用 npm 工作区时如何为单个包安装依赖项?
【发布时间】:2022-11-02 23:05:16
【问题描述】:

使用npm workspaces 我有一个这样的文件夹结构

+-- package.json
+-- package-lock.json
+-- client
|   `-- package.json
+-- shared
|   `-- package.json
`-- server
    `-- package.json

通常,在为 nodejs 应用程序创建生产构建时,我会运行 npm ci --only=production,然后将 node_modules 复制到构建工件中。我不确定在使用工作区时如何做类似的事情。

如果我运行npm ci --only=production --workspace server,它会将依赖关系拆分为./node_modules 和./server/node_modules。也许我应该将node_modules 都复制(合并?)到构建工件中?

另一种选择是将./package-lock.json 和./server/package.json 复制到一个新目录并运行npm ci --only=production。它似乎确实有效,但我对 npm 了解不足,无法知道这是否是个好主意。

要求是:

  1. node_modules 应该只包含所选包的生产依赖项
  2. 依赖版本应由package-lock.json 确定。

【问题讨论】:

  • 你有没有想过如何做到这一点?
  • @ReedHermes 我有点让它与npm ci --only=production --workspace server 一起工作,但这确实意味着工件有一个额外的目录级别,这有点烦人。我在使用像 github.com/npm/cli/issues/3847 这样的 npm 工作区时遇到了一些问题,所以现在暂时放弃它们。
  • 另一方面,有没有办法只在根级别 package.json 中安装根依赖项?

标签: npm npm-install npm-workspaces


【解决方案1】:

这似乎有效。尝试工作区参数:

cd <my_project_root>
npm i --workspaces=false

https://docs.npmjs.com/cli/v9/commands/npm-install#workspaces

【讨论】:

    猜你喜欢
    • 2022-11-25
    • 2017-09-30
    • 2018-04-06
    • 1970-01-01
    • 2021-02-17
    • 2015-05-30
    • 2016-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多