问题描述
考虑 app.js
const { doCoolStuff } = require("./api/myApi");
// grab param from command line into "myParam"
doCoolStuff(myParam);
... // more code
和Package.json:
{
"name": "-------","version": "1.0.0","description": "","main": "app.js","scripts": {
"send": "node app.js"
},...
}
我们如何在运行 app.js
时将参数传递给 npm run send
?
类似于 npm run send myEmail@myDomain.com
解决方法
const params = process.argv.slice(2)
现在这个 param 变量包含了通过 npm run 命令传递的所有参数。
npm run send myEmail@domain.com
params[0] // this will provide you with the value myEmail@domain.com
,
使用 process.argv
访问脚本中的参数。
至于如何指定参数,请参阅:Sending command line arguments to npm script
,Npm 将解析您传递给脚本的任何参数,除非它在 -- 后跟一个空格传递。 npm 解析它们后,它们将在环境变量中的 npm_config_ 下可用。
{
"scripts": {
"send": "echo \"send email to $npm_config_name @ $npm_config_mail "
}
}
然后运行
npm run demo --mail=xyz.com --name=sample
输出:send email to sample@xyz.com