DEV Community

Ismael Garcia
Ismael Garcia

Posted on • Edited on

NPM CI is better than NPM install in your CI/CD

A better and faster way to build your pipeline in a node project in general is to use the NPM CI command.

npm ci

The command offers massive improvements to both the performance and reliability of builds for continuous integration / continuous deployment processes, providing a consistent and fast experience for developers using CI/CD in their workflow.

npm ci don't use the package.json to install modules, it uses the package-lock.json file. This ensures reproducible builds—you are getting exactly what you expect on every install.

Example to implement in the Gradlew with the NodeJS plunging:

in the build.gradle file

 task npmCi(type: NpmTask) { dependsOn npmSetup npmCommand = ["ci"] inputs.file("package.json") inputs.file("package-lock.json") outputs.dir("node_modules") } npm_run_build.dependsOn npmCi assemble.dependsOn npm_run_build 
Enter fullscreen mode Exit fullscreen mode

And for the .gitlab-ci.yml
Replace the npmInstall in the build and other parts that you're using npmInstall

script: - ./gradlew npmCi - export NODE_ENV=production - ./gradlew --build-cache build 
Enter fullscreen mode Exit fullscreen mode

Top comments (1)

Collapse
 
lamianbu profile image