Javascript NPM运行脚本将参数从一个脚本传递到另一个脚本
这是我的npmJavascript NPM运行脚本将参数从一个脚本传递到另一个脚本,javascript,node.js,npm,Javascript,Node.js,Npm,这是我的npmpackage.json脚本: "scripts": { "method1": "./somScript $1", "method2": "webpack-dev-server", "runBoth": "npm run method1 $1 & npm run method2" }, 我希望能够运行npm run runall someArgument,该参数将被传递到runall,然后传递到method1 但是,我上面的代码不起作用。请指教 不,不幸的是这
package.json
脚本
:
"scripts": {
"method1": "./somScript $1",
"method2": "webpack-dev-server",
"runBoth": "npm run method1 $1 & npm run method2"
},
我希望能够运行npm run runall someArgument
,该参数将被传递到runall
,然后传递到method1
但是,我上面的代码不起作用。请指教 不,不幸的是这不可能,因为NPM附加了参数 您正在执行:npm run method1&npm run method2“someArgument” 因此,我猜您的输出如下:
[nodejs@mean test]$ npm run runBoth someArgument
> stackOverflow@0.0.1 runBoth /data/nodejs/node_projects/test
> npm run method1 $1 & npm run method2 "someArgument"
> stackOverflow@0.0.1 method1 /data/nodejs/node_projects/test
> ./somScript
[somScript] argument:
> stackOverflow@0.0.1 method2 /data/nodejs/node_projects/test
> ./script2.sh "someArgument"
now executing script2.sh using arg: someArgument
[nodejs@mean test]$
还请注意,应使用“-”传递参数,如下所示:
[nodejs@mean test]$ npm run runBoth -- someArgument
> stackOverflow@0.0.1 runBoth /data/nodejs/node_projects/test
> npm run method1 $1 & npm run method2 "someArgument"
> stackOverflow@0.0.1 method1 /data/nodejs/node_projects/test
> ./somScript
[somScript] argument:
> stackOverflow@0.0.1 method2 /data/nodejs/node_projects/test
> ./script2.sh "someArgument"
now executing script2.sh using arg: someArgument
[nodejs@mean test]$
但在您的情况下,预期的输出将是相同的
My package.json:
"scripts" : {
"method1": "./somScript",
"method2": "./script2.sh",
"runBoth": "npm run method1 $1 & npm run method2 "
}
"scripts" : {
"method1": "./somScript",
"method2": "./script2.sh",
"runBoth": "npm run method1 $1 & npm run method2 ",
"runBoth2": "./alternative.sh"
}
您应该尝试其他实现(如导出/使用环境变量或其他)
这里有一个可能的解决方法:
package.json:
"scripts" : {
"method1": "./somScript",
"method2": "./script2.sh",
"runBoth": "npm run method1 $1 & npm run method2 "
}
"scripts" : {
"method1": "./somScript",
"method2": "./script2.sh",
"runBoth": "npm run method1 $1 & npm run method2 ",
"runBoth2": "./alternative.sh"
}
其中,runBoth2执行“alternative.sh”,如下所示:
以及预期产量:
[nodejs@mean test]$ npm run runBoth2 -- someArgument
> stackOverflow@0.0.1 runBoth2 /data/nodejs/node_projects/test
> ./alternative.sh "someArgument"
> stackOverflow@0.0.1 method1 /data/nodejs/node_projects/test
> ./somScript "someArgument"
[somScript] argument: someArgument
> stackOverflow@0.0.1 method2 /data/nodejs/node_projects/test
> ./script2.sh
now executing script2.sh using arg:
[nodejs@mean test]$
关于您是否尝试过在运行
和某个参数
之间执行--
?