注意:这不是将 args 发送到顶级脚本,而是发送到由that script
在我的 package.json 中,当我调用直接采用命令行参数的脚本时,它可以工作。但是,当我调用一个调用其他脚本的脚本时,它不会将命令行参数传递给它。我该如何通过它们?
{
...
"takes-args": "somemodule",
"calls-takes-args": "npm run takes-args"
}
当我运行以下命令时,参数会出现:
npm run takes-args -- -env dev
但是当我通过其他脚本运行它时,它永远不会获得参数。有什么办法可以把它们传承下来吗?也许通过像美元符号这样的可变标记?
//The top-level script gets the args, BUT takes-args does NOT
npm run calls-takes-args -- -env dev
有什么办法吗?
Your 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
。当然,这是行不通的。
如果您添加--
to calls-takes-args
,当你跑步时npm run calls-takes-args -- -env dev
, npm run
runs npm run takes-args -- -env dev
。成功!
如果你没有传递任何参数calls-takes-args
, 尾随的--
不会受伤。
Edit:
如果您不能/不想修改您的package.json
,你可以运行
npm run calls-takes-args -- -- -env dev
那会运行somemodule -env dev
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)