【发布时间】: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 了解不足,无法知道这是否是个好主意。
要求是:
-
node_modules应该只包含所选包的生产依赖项 - 依赖版本应由
package-lock.json确定。
【问题讨论】:
-
你有没有想过如何做到这一点?
-
@ReedHermes 我有点让它与
npm ci --only=production --workspace server一起工作,但这确实意味着工件有一个额外的目录级别,这有点烦人。我在使用像 github.com/npm/cli/issues/3847 这样的 npm 工作区时遇到了一些问题,所以现在暂时放弃它们。 -
另一方面,有没有办法只在根级别 package.json 中安装根依赖项?
标签: npm npm-install npm-workspaces