npmstart.
实践指南
开始一个项目

npm install 和 npm ci 有什么区别?

开发时添加或调整依赖,通常用 npm install;在持续集成中按照已有锁文件重建依赖,通常用 npm ci。关键差别在于:能不能修改依赖声明和锁文件。

需要修改依赖时,用 npm install

npm install 可以安装项目已有依赖,也可以添加指定的包。添加包时,它通常会同步更新 package.json 与 package-lock.json。没有锁文件时,也可以通过它建立锁文件。

命令或示例
npm install
npm install zod
npm install -D vitest

每次添加或升级依赖后,检查并提交相应的锁文件变更。

需要按锁文件复现时,用 npm ci

npm ci 要求项目中已经存在 package-lock.json 或 npm-shrinkwrap.json。如果锁文件与 package.json 不一致,它会报错,而不是悄悄修正锁文件。它还会先移除已有 node_modules,再进行干净安装。

命令或示例
npm ci
npm run build

npm ci 用于安装整个项目,不能替代 npm install zod 这类单个依赖的添加操作。它不会写入 package.json 或锁文件。

CI 提示锁文件不一致,怎么处理?

回到开发环境检查 package.json 是否被修改。确认修改是需要的后,使用相同项目配置运行 npm install,审阅生成的 package-lock.json 变更,然后一起提交。不要把删除锁文件作为默认修复手段。

命令或示例
npm install
git diff -- package.json package-lock.json

如果生成锁文件时使用了会影响依赖树的选项,例如 legacy-peer-deps,CI 也需要一致的设置。优先把必要的项目设置记录在版本管理中的 .npmrc。

在团队中统一规则

本地新增或升级依赖用 install,自动构建优先用 ci。统一包管理器、提交对应的锁文件,并固定构建环境中的 Node.js 与 npm 版本。锁文件能约束依赖解析,但不能保证所有系统环境和构建输出完全相同。

参考资料

命令行为与框架要求会变化。使用前结合你的项目版本,核对相应官方文档。

把需求整理好,再交给 AI。

给下一次开工加上范围、命令和验收清单。

生成项目开工包

你可能接下来会用到

全部指南