DEV Community

Ismael Garcia
Ismael Garcia

Posted on • Edited on

1 1

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
view raw socials.md hosted with ❤ by GitHub

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (1)

Collapse

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay