将命令行parameter passing给npm'pre'脚本和多个命令的脚本
有没有办法将命令行parameter passing给npm'pre'脚本或运行多个命令的脚本?
假设一个简单的脚本mySexyScript.js
只是注销process.argv:
console.log(process.argv);
这工作
用npm脚本:
... "scripts": { .... "sexyscript": "node mySexyScript.js" .... } ...
运行:
npm run sexyscript -- --foo=bar
按照预期将参数logging到控制台。
'pre'脚本 – 这是行不通的
用npm脚本:
... "scripts": { .... "presexyscript": "node mySexyScript.js" "sexyscript": "node mySuperSexyScript.js" .... } ...
运行:
npm run sexyscript -- --foo=bar
参数不会传递给mySexyScript,并且不会logging
多个命令 – 这也是行不通的
用npm脚本:
... "scripts": { .... "sexyscript": "node mySexyScript.js && node mySuperSexyScript.js" .... } ...
运行:
npm run sexyscript -- --foo=bar
参数不会传递给mySexyScript,并且不会logging
没有办法像你所描述的那样通过参数。
假设一个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传递给这两个脚本。