// index.js
const getArgs = () =>
process.argv.reduce((args, arg) => {
// long arg
if (arg.slice(0, 2) === "--") {
const longArg = arg.split("=");
const longArgFlag = longArg[0].slice(2);
const longArgValue = longArg.length > 1 ? longArg[1] : true;
args[longArgFlag] = longArgValue;
}
// flags
else if (arg[0] === "-") {
const flags = arg.slice(1).split("");
flags.forEach((flag) => {
args[flag] = true;
});
}
return args;
}, {});
const args = getArgs();
console.log(args);
- calling inline:
node index.js -D --name=Hello
=> { D: true, name: 'Hello' }
- calling via package.json
// package.json
{
"scripts": {
"start": "node index.js"
}
}
npm start -- -D --name=Hello
=> { D: true, name: 'Hello' }