如何将命令行parameter passing给嵌套的脚本?
注意:这不是关于将参数发送到顶层脚本,而是发送到该脚本所调用的脚本
在我的package.json中,当我直接调用一个使用命令行参数的脚本时,它可以工作。 但是当我调用一个脚本调用另一个脚本时,它不会将命令行parameter passing给它。 我如何通过他们?
{ ... "takes-args": "somemodule", "calls-takes-args": "npm run takes-args" }
当我运行下面的命令,参数来通过:
npm run takes-args -- -env dev
但是当我通过另一个脚本运行它时,它从来没有得到参数。 有什么办法让他们失望? 也许通过一个像美元符号的variables标记?
//The top-level script gets the args, BUT takes-args does NOT npm run calls-takes-args -- -env dev
有什么办法吗?
您的scripts
字段应如下所示:
{ ... "takes-args": "somemodule", "calls-takes-args": "npm run takes-args --" }
请注意--
在calls-takes-args
的结尾。
在--
之后传递的任何内容都会直接附加到正在运行的脚本上。 当你运行npm run calls-takes-args -- -env dev
,相当于运行npm run takes-args -env dev
。 当然,这是行不通的。
如果你添加--
来calls-takes-args
,当你运行npm run calls-takes-args -- -env dev
, npm run
runs npm run takes-args -- -env dev
。 成功!
如果你没有把任何parameter passing给calls-takes-args
,那么拖尾--
不会受到伤害。
编辑:
如果你不能/不想修改你的package.json
,你可以运行
npm run calls-takes-args -- -- -env dev
这将运行somemodule -env dev
。