有没有办法将命令行参数传递给 npm“pre”脚本或运行多个命令的脚本?
假设一个简单的脚本 mySexyScript.js
只注销 process.argv :
console.log(process.argv);
这行得通
使用 npm 脚本:
...
"scripts": {
....
"sexyscript": "node mySexyScript.js"
....
}
...
运行:
npm run sexyscript -- --foo=bar
参数按预期记录到控制台。
'pre' 脚本 - 这不起作用
使用 npm 脚本:
...
"scripts": {
....
"presexyscript": "node mySexyScript.js"
"sexyscript": "node mySuperSexyScript.js"
....
}
...
运行:
npm run sexyscript -- --foo=bar
参数没有传递给 mySexyScript,也没有记录
多个命令 - 这也行不通
使用 npm 脚本:
...
"scripts": {
....
"sexyscript": "node mySexyScript.js && node mySuperSexyScript.js"
....
}
...
运行:
npm run sexyscript -- --foo=bar
参数没有传递给 mySexyScript,也没有记录
最佳答案
无法按照您描述的方式传递参数。
假设一个package.json
:
...
"scripts": {
....
"somescript": "node one.js && node two.js"
....
}
...
运行:
npm run somescript -- --foo=bar
基本上只是运行
node one.js && node two.js --foo=bar
在默认系统外壳上(通常是 bash
或 cmd.exe
)。
npm
实际上对 shell 运算符一无所知(即 &&
),因此它无法将 args 传递给两个脚本。
关于node.js - 使用多个命令将命令行参数传递给 npm 'pre' 脚本和脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42491208/