Npm CI 保证依赖一致
type
status
date
slug
summary
tags
category
icon
password
Blocking
Blocked by
top
URL
Sub-item
Parent item
使用场景
- 在有
package-lock.json
的项目,可以使用npm ci
来替代npm install
,就可以避免不同开发环境版本不一致而出现各种奇怪问题。
- 单独安装新依赖时,则使用
npm install
。
与npm install 区别
- 使用
npm install
安装依赖 - 它将会安装 Node.js 项目所有的依赖项;
- 如果使用
^
或~
来匹配依赖项的版本时,则 npm 可能无法安装确切版本,会安装最新的符合条件的依赖; - 利用
npm install
安装新依赖项时,会更新package-lock.json
。
npm ci
安装依赖package-lock.json
必须存在,严格按照package-lock.json
中指定的版本安装。- 自动删除 node_modules。当
npm ci
时,如果 node_modules 存在,则自动删除它,这是为了保证一个干净的 node_modules 环境,避免遗留旧版本库的副作用。 - 不会更改项目
package-lock.json
。 - 无需计算求解依赖满足问题,在大多数情况下都可以大大加速 node 模块安装过程。
- 不能单独装包。这一条很容易解释,它适用于持续集成环境中,无法单独装包,例如无法仅仅安装
lodash
。
在yarn与pnpm的使用
与npm ci功能相同的命令:
yarn
pnpm