npm ci 和 npm install 到底有什么区别?

Air-子聪 阅读 17

我最近在 CI/CD 流程里看到同事都用 npm ci 而不是 npm install,但我不太明白为啥。自己本地开发时用 install 没问题,但一跑 ci 就报错说依赖不一致。

查了文档说 ci 会严格按 package-lock.json 装,可我明明提交了 lock 文件啊。是不是只要用了 pnpm 或 yarn,就不能用 npm ci?还是说这个命令只适合自动化环境?

我来解答 赞 4 收藏
二维码
手机扫码查看
1 条解答
Mc.书娟
Mc.书娟 Lv1
问题在于你本地用 npm install 时可能修改了 package-lock.json 但没提交上去,或者 package.json 和 lock 文件已经不同步了。npm ci 要求 lock 文件和 package.json 完全匹配,不匹配就报错。

解决办法:先跑 npm install --package-lock-only 同步 lock 文件,确保 package.json 和 lock 一致后再提交。CI 流程中用 rm -rf node_modules && npm ci 清理后再装。

pnpm 和 yarn 完全可以用 ci 命令,只是别混用就行——一个项目只用一个包管理器。
点赞
2026-03-18 21:01