如何调用npm的script-a时传递参数给其内部调用的script-b?
npm脚本参数传递问题解答
直接执行 npm run script-a --logging 无法将logging参数传递给script-b。
原因是:npm会把--logging识别为script-a自身的参数,但script-a的命令是npm run script-b,这个命令并不接收--logging,因此参数不会自动传递给下游的script-b。
要实现参数传递,有两种可行方式:
方式一:修改package.json中的script-a
在script-a的命令末尾加上--,这会告诉npm把后续所有参数传递给子命令script-b:
"script-a": "npm run script-b --", "script-b": "ts-node ./src/the-script.ts"
之后执行以下命令即可传递参数:
npm run script-a --logging
方式二:调用时使用双重--(无需修改package.json)
如果不想修改package.json,也可以在调用时通过双重--来传递参数:
npm run script-a -- --logging
第一个--是告诉npm后面的内容是要传递给script-a的参数,而script-a执行的npm run script-b会把第二个--后面的--logging接收到并传给最终的脚本。
内容的提问来源于stack exchange,提问作者lornz
相关产品推荐
相关产品推荐

