[英]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.