npm ci
包与运行时
用法
npm ci [--omit=dev]先删掉 node_modules,再严格按 package-lock.json 安装;它绝不改动 lockfile,一旦和 package.json 不一致就直接失败,所以 CI 用它而不是 install。
常用选项
| 选项 | 含义 |
|---|---|
| --omit=dev | production dependencies only |
| --ignore-scripts | skip lifecycle scripts, common in CI |
| --prefer-offline | use the cache whenever it can |
| --no-audit | skip the vulnerability check for speed |
| --cache <dir> | point at a cache directory the CI runner keeps |
示例
npm cideletes node_modules and installs exactly what the lockfile says
npm ci --omit=deva production install for a container image
npm ci --ignore-scriptsinstalls without running third-party install hooks
问题永远是什么装到哪里:装进这个项目,还是装到整台机器上。
怎么看
- 方括号 [ ] 表示这部分可以不写。
- 省略号 … 表示可以写多个。
- 选项区分大小写——有些命令里 -r 和 -R 不是一回事。
常见问题
Q. npm ci 是做什么的?
先删掉 node_modules,再严格按 package-lock.json 安装;它绝不改动 lockfile,一旦和 package.json 不一致就直接失败,所以 CI 用它而不是 install。
Q. 怎么写?
npm ci [--omit=dev] —— 方括号表示可以省略的部分。
Q. 值得记的选项有几个?
这里列了 5 个,完整列表在 man npm。这条命令属于包与运行时。
相关命令
man 手册: man npm-ci