12

有没有办法将命令行参数传递给 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 且未记录

4

1 回答 1

6

没有办法以您描述的方式传递参数。

假设一个package.json

...
"scripts": {
    ....
    "somescript": "node one.js && node two.js"
    ....
}
...

跑步:

npm run somescript -- --foo=bar

基本上只是运行

node one.js && node two.js --foo=bar

在默认系统 shell 上(通常是bashcmd.exe)。

npm实际上对 shell 运算符(即)一无所知&&,因此它不能将 args 传递给两个脚本。

于 2017-02-27T20:34:40.537 回答