Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

npm-ci (1)

Name

npm-ci - Install a project with a clean slate Synopsis npm ci aliases: clean-install, ic, install-clean, isntall-clean Description This command is similar to npm help install, except it's meant to be used in automated environments such as test platforms, continuous inte- gration, and deployment -- or any situation where you want to make sure you're doing a clean install of your dependencies. npm ci will be significantly faster when: o There is a package-lock.json or npm-shrinkwrap.json file. o The node_modules folder is missing or empty. In short, the main differences between using npm install and npm ci are: o The project must have an existing package-lock.json or npm-shrinkwrap.json. o If dependencies in the package lock do not match those in pack- age.json, npm ci will exit with an error, instead of updating the package lock. o npm ci can only install entire projects at a time: individual depen- dencies cannot be added with this command. o If a node_modules is already present, it will be automatically removed before npm ci begins its install. o It will never write to package.json or any of the package-locks: installs are essentially frozen. NOTE: If you create your package-lock.json file by running npm install with flags that can affect the shape of your dependency tree, such as --legacy-peer-deps or --install-links, you must provide the same flags to npm ci or you are likely to encounter errors. An easy way to do this is to run, for example, npm config set legacy-peer-deps=true --loca- tion=project and commit the .npmrc file to your repo. Example Make sure you have a package-lock and an up-to-date install: $ cd ./my/npm/project $ npm install added 154 packages in 10s $ ls | grep package-lock Run npm ci in that project $ npm ci added 154 packages in 5s Configure Travis to build using npm ci instead of npm install: # .travis.yml install: - npm ci # keep the npm cache around to speed up installs cache: directories: - "$HOME/.npm" Configuration audit o Default: true o Type: Boolean 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 audit for details on what is submitted. foreground-scripts o Default: false o Type: Boolean Run all build scripts (ie, preinstall, install, and postinstall) scripts for installed packages in the foreground process, sharing stan- dard input, output, and error with the main npm process. Note that this will generally make installs run slower, and be much noisier, but can be useful for debugging. ignore-scripts o Default: false o Type: Boolean If true, npm does not run scripts specified in package.json files. Note that commands explicitly intended to run a particular script, such as npm start, npm stop, npm restart, npm test, and npm run-script will still run their intended script if ignore-scripts is set, but they will not run any pre- or post-scripts. script-shell o Default: '/bin/sh' on POSIX systems, 'cmd.exe' on Windows o Type: null or String The shell to use for scripts run with the npm exec, npm run and npm init <pkg> commands. See Also o npm help install o npm help package-lock.json

Synopsis

Please see following description for synopsis

Description

NPM-CI(1)                                                            NPM-CI(1)



NAME
       npm-ci - Install a project with a clean slate

   Synopsis
         npm ci

         aliases: clean-install, ic, install-clean, isntall-clean

   Description
       This  command  is  similar to npm help install, except it's meant to be
       used in automated environments such as test platforms, continuous inte-
       gration, and deployment -- or any situation where you want to make sure
       you're doing a clean install of your dependencies.

       npm ci will be significantly faster when:

       o There is a package-lock.json or npm-shrinkwrap.json file.

       o The node_modules folder is missing or empty.


       In short, the main differences between using npm  install  and  npm  ci
       are:

       o The    project   must   have   an   existing   package-lock.json   or
         npm-shrinkwrap.json.

       o If dependencies in the package lock  do  not  match  those  in  pack-
         age.json,  npm  ci  will  exit with an error, instead of updating the
         package lock.

       o npm ci can only install entire projects at a time: individual  depen-
         dencies cannot be added with this command.

       o If  a  node_modules  is  already  present,  it  will be automatically
         removed before npm ci begins its install.

       o It will never write to package.json  or  any  of  the  package-locks:
         installs are essentially frozen.


       NOTE:  If you create your package-lock.json file by running npm install
       with flags that can affect the shape of your dependency tree,  such  as
       --legacy-peer-deps  or --install-links, you must provide the same flags
       to npm ci or you are likely to encounter errors. An easy way to do this
       is  to  run,  for example, npm config set legacy-peer-deps=true --loca-
       tion=project and commit the .npmrc file to your repo.

   Example
       Make sure you have a package-lock and an up-to-date install:

         $ cd ./my/npm/project
         $ npm install
         added 154 packages in 10s
         $ ls | grep package-lock

       Run npm ci in that project

         $ npm ci
         added 154 packages in 5s

       Configure Travis to build using npm ci instead of npm install:

         # .travis.yml
         install:
         - npm ci
         # keep the npm cache around to speed up installs
         cache:
           directories:
           - "$HOME/.npm"

   Configuration
   audit
       o Default: true

       o Type: Boolean


       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 audit for details on what is submitted.

   foreground-scripts
       o Default: false

       o Type: Boolean


       Run all  build  scripts  (ie,  preinstall,  install,  and  postinstall)
       scripts for installed packages in the foreground process, sharing stan-
       dard input, output, and error with the main npm process.

       Note that this will generally make installs run  slower,  and  be  much
       noisier, but can be useful for debugging.

   ignore-scripts
       o Default: false

       o Type: Boolean


       If true, npm does not run scripts specified in package.json files.

       Note that commands explicitly intended to run a particular script, such
       as npm start, npm stop, npm restart, npm test, and npm run-script  will
       still run their intended script if ignore-scripts is set, but they will
       not run any pre- or post-scripts.

   script-shell
       o Default: '/bin/sh' on POSIX systems, 'cmd.exe' on Windows

       o Type: null or String


       The shell to use for scripts run with the npm exec,  npm  run  and  npm
       init <pkg> commands.

   See Also
       o npm help install

       o npm help package-lock.json




ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+--------------------------+
       |ATTRIBUTE TYPE |     ATTRIBUTE VALUE      |
       +---------------+--------------------------+
       |Availability   | runtime/nodejs/nodejs-18 |
       +---------------+--------------------------+
       |Stability      | Pass-thru volatile       |
       +---------------+--------------------------+

NOTES
       Source  code  for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source    was   downloaded   from    https://github.com/nodejs/node/ar-
       chive/v18.1.0.zip.

       Further information about this software can be found on the open source
       community website at https://github.com/nodejs/node.



                                  April 2022                         NPM-CI(1)