34

我正在尝试为在本地开发环境中安装我们的代码库的新开发人员整理文档。我想给他们命令:

  • 根据 package-lock.json 中的版本安装 devDependencies 和依赖项
  • 不更新 package-lock.json

“npm ci”几乎完全符合我的要求,但似乎没有安装 devDependencies。“npm install” 确实安装了 devDependencies,但它有时会修改 package-lock.json。

我可以想象一些像“npm install && git checkout package-lock.json”这样的笨拙的东西,但我觉得必须有一种更惯用的方式来表达“给我一个干净安装这个项目的依赖项以进行开发?”

4

2 回答 2

54

npm ci确实安装了依赖项和开发依赖项。但是如果你使用npm ci --production或者如果你NODE_ENV设置为生产,那么它会避免安装开发依赖项。请在此处查看文档。

使用该--production标志(或者当NODE_ENV环境变量设置为生产时),npm 将不会安装 devDependencies 中列出的模块。

注意:--production向项目添加依赖项时,该标志没有特殊含义。

于 2020-04-22T12:03:06.837 回答
32

覆盖NODE_ENV变量

当您的NODE_ENV环境变量设置为production时,使用npm ci不会安装 devDependencies。但是如果你还想安装devDependencies

npm ci --include=dev

会成功的;)


对于早于 NPM v7.x 的版本,请使用

npm ci --also=dev
于 2020-11-02T15:53:35.453 回答