1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- .TH "NPM\-CI" "1" "August 2021" "" ""
- .SH "NAME"
- \fBnpm-ci\fR \- Install a project with a clean slate
- .SS Synopsis
- .P
- .RS 2
- .nf
- npm ci
- .fi
- .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 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\. It can be significantly faster than a regular npm
- install by skipping certain user\-oriented features\. It is also more strict than
- a regular install, which can help catch errors or inconsistencies caused by the
- incrementally\-installed local environments of most npm users\.
- .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 See Also
- .RS 0
- .IP \(bu 2
- npm help install
- .IP \(bu 2
- npm help package\-locks
- .RE
|