123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- .TH "NPM\-CI" "1" "October 2021" "" ""
- .SH "NAME"
- \fBnpm-ci\fR \- Install a project with a clean slate
- .SS Synopsis
- .P
- .RS 2
- .nf
- npm ci
- .fi
- .RE
- .SS Description
- .P
- This command is similar to npm help \fBinstall\fP, except
- it's meant to be used in automated environments such as test platforms,
- continuous integration, and deployment \-\- or any situation where you want
- to make sure you're doing a clean install of your dependencies\.
- .P
- \fBnpm ci\fP will be significantly faster when:
- .RS 0
- .IP \(bu 2
- There is a \fBpackage\-lock\.json\fP or \fBnpm\-shrinkwrap\.json\fP file\.
- .IP \(bu 2
- The \fBnode_modules\fP folder is missing or empty\.
- .RE
- .P
- In short, the main differences between using \fBnpm install\fP and \fBnpm ci\fP are:
- .RS 0
- .IP \(bu 2
- The project \fBmust\fR have an existing \fBpackage\-lock\.json\fP or
- \fBnpm\-shrinkwrap\.json\fP\|\.
- .IP \(bu 2
- If dependencies in the package lock do not match those in \fBpackage\.json\fP,
- \fBnpm ci\fP will exit with an error, instead of updating the package lock\.
- .IP \(bu 2
- \fBnpm ci\fP can only install entire projects at a time: individual
- dependencies cannot be added with this command\.
- .IP \(bu 2
- If a \fBnode_modules\fP is already present, it will be automatically removed
- before \fBnpm ci\fP begins its install\.
- .IP \(bu 2
- It will never write to \fBpackage\.json\fP or any of the package\-locks:
- installs are essentially frozen\.
- .RE
- .SS Example
- .P
- Make sure you have a package\-lock and an up\-to\-date install:
- .P
- .RS 2
- .nf
- $ cd \./my/npm/project
- $ npm install
- added 154 packages in 10s
- $ ls | grep package\-lock
- .fi
- .RE
- .P
- Run \fBnpm ci\fP in that project
- .P
- .RS 2
- .nf
- $ npm ci
- added 154 packages in 5s
- .fi
- .RE
- .P
- Configure Travis to build using \fBnpm ci\fP instead of \fBnpm install\fP:
- .P
- .RS 2
- .nf
- # \.travis\.yml
- install:
- \- npm ci
- # keep the npm cache around to speed up installs
- cache:
- directories:
- \- "$HOME/\.npm"
- .fi
- .RE
- .SS Configuration
- <!\-\- AUTOGENERATED CONFIG DESCRIPTIONS START \-\->
- <!\-\- automatically generated, do not edit manually \-\->
- <!\-\- see lib/utils/config/definitions\.js \-\->
- .SS \fBaudit\fP
- .RS 0
- .IP \(bu 2
- Default: true
- .IP \(bu 2
- Type: Boolean
- .RE
- .P
- When "true" submit audit reports alongside the current npm command to the
- default registry and all registries configured for scopes\. See the
- documentation for npm help \fBaudit\fP for details on what is
- submitted\.
- <!\-\- automatically generated, do not edit manually \-\->
- <!\-\- see lib/utils/config/definitions\.js \-\->
- .SS \fBignore\-scripts\fP
- .RS 0
- .IP \(bu 2
- Default: false
- .IP \(bu 2
- Type: Boolean
- .RE
- .P
- If true, npm does not run scripts specified in package\.json files\.
- .P
- Note that commands explicitly intended to run a particular script, such as
- \fBnpm start\fP, \fBnpm stop\fP, \fBnpm restart\fP, \fBnpm test\fP, and \fBnpm run\-script\fP
- will still run their intended script if \fBignore\-scripts\fP is set, but they
- will \fInot\fR run any pre\- or post\-scripts\.
- <!\-\- automatically generated, do not edit manually \-\->
- <!\-\- see lib/utils/config/definitions\.js \-\->
- .SS \fBscript\-shell\fP
- .RS 0
- .IP \(bu 2
- Default: '/bin/sh' on POSIX systems, 'cmd\.exe' on Windows
- .IP \(bu 2
- Type: null or String
- .RE
- .P
- The shell to use for scripts run with the \fBnpm exec\fP, \fBnpm run\fP and \fBnpm
- init <pkg>\fP commands\.
- <!\-\- automatically generated, do not edit manually \-\->
- <!\-\- see lib/utils/config/definitions\.js \-\->
- <!\-\- AUTOGENERATED CONFIG DESCRIPTIONS END \-\->
- .SS See Also
- .RS 0
- .IP \(bu 2
- npm help install
- .IP \(bu 2
- npm help package\-lock\.json
- .RE
|