阅读(2741) (10)

npm 严格安装 ci

2021-09-06 11:23:03 更新

重新开始安装一个项目

概要

npm ci

描述

此命令类似npm-install,不同之处在于它旨在用于自动化环境,例如测试平台、持续集成和部署 —— 或者你希望确保对依赖项进行全新安装的任何情况。通过跳过某些面向用户的功能,它可以比常规的 npm 安装快得多。它也比常规安装更严格,可以帮助捕获由大多数 npm 用户增量安装的本地环境引起的错误或不一致。

简而言之,使用npm install和之间的主要区别npm ci是:

  • 该项目必须具有现有的package-lock.jsonnpm-shrinkwrap.json.
  • 如果包锁中的依赖项与 中的不匹配package.jsonnpm ci将退出并显示错误,而不是更新包锁。
  • npm ci 一次只能安装整个项目:无法使用此命令添加单个依赖项。
  • 如果 anode_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 startnpm stopnpm restartnpm test, 并且npm run-script 如果ignore-scripts已设置仍将运行其预期脚本,但它们不会运行任何前置或后置脚本。

script-shell

  • 默认值:POSIX 系统上的/bin/shWindows 上的cmd.exe
  • 类型:nullString

用于脚本的 shell 与npm exec,npm runnpm init <pkg>命令一起运行。