首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用"npm“代替"npm安装”进行确定性项目设置

使用"npm“代替"npm安装”进行确定性项目设置
EN

Stack Overflow用户
提问于 2018-11-25 15:31:36
回答 2查看 3.4K关注 0票数 11

给定一个在源代码管理中管理package-lock.json的项目,目标是团队中的所有开发人员获得完全相同的依赖关系。

从npm的文档中,我认为开发人员应该使用npm ci来设置他们的开发环境,可能在以后更新依赖关系时也是如此。

然而,我在典型的npm项目中看到的说明仍然需要使用npm install

开发人员为什么应该使用npm install而不是npm ci呢?在这种情况下,npm ci有缺点吗?

据我了解,npm ci确实删除了整个node_modules,因此有可能重新下载一些已经存在的依赖项。

但是在npm install中,我经常遇到这样的情况:npm install实际上正在改变package-lock.json (请参阅下面的链接),这肯定不是传统项目设置中所期望的那样,传统的项目设置的主要目标是所有开发人员都获得相同的环境。

因此,我建议使用npm ci

npm install的“意外”行为示例

EN

回答 2

Stack Overflow用户

发布于 2022-07-01 16:56:40

在本地构建回购或更新依赖项时,没有理由使用npm ci而不是npm i (因为它使用npm缓存,它的速度与npm i大致相同),但在以下情况下,npm i可能是首选的:

  1. 实际上,您希望自动接收直接依赖项的小/修补程序更新;
  2. 如果您已经对package.json中的版本进行了手动更改,并希望它们优于package-lock.json中的版本。
票数 0
EN

Stack Overflow用户

发布于 2022-08-21 11:13:21

当您想要一个可复制的环境时,您应该使用npm ci (干净安装)。你说得对:开发团队大部分时间都应该使用它。

只有当它们修改包或准备升级依赖项时才使用npm install (其中之一这样做并修复冲突;在提交package.jsonpackage-lock.json之后,其他人继续执行npm ci)。

请参阅my answer解释每个工具的使用情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53469032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档