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
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