有没有办法将命令行参数传递给npm' pre'脚本或运行多个命令的脚本?
假设一个简单的脚本mySexyScript.js
只能注销process.argv:
console.log(process.argv);
此作品
使用npm脚本:
...
"scripts": {
....
"sexyscript": "node mySexyScript.js"
....
}
...
运行:
npm run sexyscript -- --foo=bar
参数按预期记录到控制台。
'预'脚本 - 这不起作用
使用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且未记录
答案 0 :(得分:1)
没有办法按照你描述的方式传递args。
假设package.json
:
...
"scripts": {
....
"somescript": "node one.js && node two.js"
....
}
...
运行:
npm run somescript -- --foo=bar
基本上只是运行
node one.js && node two.js --foo=bar
在默认系统shell上(通常为bash
或cmd.exe
)。
npm
实际上并不了解shell运算符(即&&
),因此无法将args传递给两个脚本。