Difference between npm i and npm ci in Node.js
The following difference covers how npm i and npm ci command are different from each other and their functioning. The npm which is called a node package manager which is used for managing modules needed for our application.
npm i: The npm i (or npm install) is used to install all dependencies or devDependencies from a package.json file.
Syntax:
npm install "package-name" // OR npm i "package-name"
npm ci: CI stands for clean install and npm ci is used to install all exact version dependencies or devDependencies from a package-lock.json file.
Syntax:
npm ci
Differences between npm i and npm ci are:
S.No. |
npm i |
npm ci |
1. | It installs a package and all its dependencies. | It is generally used to install dependencies. |
2. | It may write to package.json or package-lock.json. | It never writes to package.json or package-lock.json. |
3. | Individual dependencies can be added with this command. | Individual dependencies cannot be added with this command. |
4. | It is slower in execution. | It is faster in execution. |
5. | If any dependency is not in package-lock.json, This command will add it. | If any dependencies are missing or have incompatible versions, then npm ci will throw an error. |
6. | If a node_modules is already present, This Command doesn’t change anything to it. | If a node_modules is already present, it will be automatically removed before npm ci begins its install. |
7. | It can install global packages. | It can not install global packages. |
8. | The npm i package-name is used to write to package.json to add or update dependencies. | It can’t be used to write to package.json. |
9. | npm i may write to package-lock.json to lock version of some dependencies. | It can’t write to package-lock.json. |
10 . | Used during development after pulling changes that update the list of dependencies. | Used for the deterministic, repeatable build. |