npm 严格安装 ci
重新开始安装一个项目
概要
npm ci
描述
此命令类似npm-install,不同之处在于它旨在用于自动化环境,例如测试平台、持续集成和部署 —— 或者你希望确保对依赖项进行全新安装的任何情况。通过跳过某些面向用户的功能,它可以比常规的 npm 安装快得多。它也比常规安装更严格,可以帮助捕获由大多数 npm 用户增量安装的本地环境引起的错误或不一致。
简而言之,使用npm install
和之间的主要区别npm ci
是:
- 该项目必须具有现有的
package-lock.json
或npm-shrinkwrap.json
. - 如果包锁中的依赖项与 中的不匹配
package.json
,npm ci
将退出并显示错误,而不是更新包锁。 npm ci
一次只能安装整个项目:无法使用此命令添加单个依赖项。- 如果 a
node_modules
已经存在,它将在npm ci
开始安装之前自动删除。 - 它永远不会写入
package.json
或任何包锁:安装基本上是冻结的。
例子
确保你有一个包锁和一个最新的安装:
$ cd ./my/npm/project
$ npm install
added 154 packages in 10s
$ ls | grep package-lock
npm ci
在那个项目中运行
$ npm ci
added 154 packages in 5s
将 Travis 配置为使用npm ci
而不是构建npm install
:
## .travis.yml
install:
- npm ci
## keep the npm cache around to speed up installs
cache:
directories:
- "$HOME/.npm"
配置
audit 审计
- 默认值:
true
- 类型:
Boolean
当为true
时,将审计报告与当前 npm 命令一起提交到默认注册表和为范围配置的所有注册表。有关npm audit
提交内容的详细信息,请参阅文档。
ignore-scripts 忽略脚本
- 默认值:
false
- 类型:
Boolean
如果为 true
,则 npm 不会运行 package.json 文件中指定的脚本。
请注意,明确用于运行特定脚本的命令,例如 npm start
, npm stop
, npm restart
, npm test
, 并且npm run-script
如果ignore-scripts
已设置仍将运行其预期脚本,但它们不会运行任何前置或后置脚本。
script-shell
- 默认值:
POSIX
系统上的/bin/sh
,Windows
上的cmd.exe
- 类型:
null
或String
用于脚本的 shell 与npm exec
,npm run
和npm init <pkg>
命令一起运行。
更多建议: