Last Updated : 28 Mar, 2024
Summarize
Comments
Improve
In the sector of NodeJS development, NPM (Node Package Manager) scripts are a effective tool for automating numerous tasks like strolling exams, building the mission, or starting a improvement server. However, there are times while you need to bypass arguments to these scripts to customize their behavior. This article will discover how you can ship command line arguments to NPM scripts.
We will discuss the following methods to send command line arguments to NPM Script:
Table of Content
- Using process.argv()
- Using npm_config_ Method
Using process.argv()
1. Sending a single argument to an NPM script
Explanation: In this code we’re executing an NPM script named “hello” that’s described inside the package.json file. By running NPM run hello and passing the argument — –name=John through the command line, the script script.js accesses this argument and outputs a greeting message. It prints “Hello, John!” which indicate that argument which was send has successfull.
Note: Install the minimist package for using this approach
$ npm i minimist
CODE
// package.json
{
"scripts": {
"hello": "node script.js"
}
}
Terminal
$ npm run hello -- --name=John
// script.jsconst args = require('minimist')(process.argv.slice(2));const name = args['name'];console.log(`Hello ${name}!`);
Output:
Hello, John!
2. Sending multiple arguments to an npm script:
Explanation: We’re running an npm script referred to as “greet”, passing multiple arguments through the command line the usage of –. The script greet.Js processes those arguments and outputs a greeting message accordingly. In this situation, it prints “Hello, John!” because we provided the name “John” and the greeting “Hello” as arguments.
Note: Install the minimist package for using this approach
$ npm i minimist
CODE
// package.json
{
"scripts": {
"greet": "node greet.js"
}
}
Terminal
$ npm run greet -- --name=John --greeting=Hello
// greet.jsconst args = require('minimist')(process.argv.slice(2));const name = args['name'];const greeting = args['greeting'];console.log(`${greeting}, ${name}!`);
Output:
Hello, John!
Using npm_config_ Method
1. Sending a single argument to an npm script:
Explanation: In this code we are running an npm script named “hello” defined in package.json. using NPM run hello, followed by –name=”Jane” in the terminal, we have passed a single argument to the script script.js. The script then uses this argument to output a greeting message “Hello Jane !”.
CODE
// package.json
{
"scripts": {
"hello": "node script.js"
}
}
Terminal
$ npm run hello --name="Jane"
const nname = process.env.npm_config_name ? process.env.npm_config_name : "John"console.log("Hello", nname, "!")
See Alsonpm-run-script | npm Docs
Output
Hello John !
2. Sending multiple arguments to an npm script:
Explanation: in this code we are excuting an npm script named “greet” specified in package.json. By running npm run hello, followed by –firstName=”Jason” –lastName=”Roy” in the command line, we are passing multiple arguments to the script greet.js. The script accesses these arguments and generates a greeting message accordingly. In this case, it’s output is “Hello Jason Roy”
CODE
// package.json
{
"scripts": {
"hello": "node script.js"
}
}
Terminal:
$ npm run hello --firstName="Jason" --lastName="Roy"
const firstName = process.env.npm_config_firstName ? process.env.npm_config_firstName : "John"const lastName = process.env.npm_config_lastName ? process.env.npm_config_lastName : "Doe"console.log("Hello", firstName, lastName)
Output
Hello John Doe