繁体   English   中英

运行 rm -rf node_modules + npm i 与 npm ci 之间有什么区别吗?

[英]Is there any difference between running rm -rf node_modules + npm i vs npm ci?

如果我使用的是 unix 系统并想清除我的节点模块文件夹,那么运行是否有任何区别或优势

rm -rf node_modules

然后npm i

相对

npm ci

据我了解,它们产生了相同的结果,但是引擎盖下发生的事情是否相同?

运行npm help ci会给你答案; 简而言之,它也删除了 node_modules ,但它适用于 CI,因此执行了一些额外的任务:

此命令类似于npm install ,不同之处在于它旨在用于自动化环境,例如测试平台、持续集成和部署,或任何您希望确保干净安装依赖项的情况。 通过跳过某些面向用户的功能,它可以比常规的npm install快得多。 它也比常规安装更严格,可以帮助捕获大多数 npm 用户增量安装的本地环境导致的错误或不一致。

简而言之,使用 npm install 和 npm ci 的主要区别是:

  • 该项目必须具有现有的 package-lock.json 或 npm-shrinkwrap.json。
  • If dependencies in the package lock do not match those in package.json, npm ci will exit with an error, instead of updating the package lock.
  • npm ci 一次只能安装整个项目:无法使用此命令添加单个依赖项。
  • 如果 node_modules 已经存在,它将在 npm ci 开始安装之前自动删除。
  • 它永远不会写入 package.json 或任何包锁:安装基本上被冻结。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM