注意:这不是关于将args发送到顶级脚本,而是发送到调用的脚本脚本
在我的package.json中,当我调用一个直接接受命令行args的脚本时,它可以工作。但是当我调用一个调用其他脚本的脚本时,它并没有将命令行args传递给它。我如何通过它们?
{
...
"takes-args": "somemodule",
"calls-takes-args": "npm run takes-args"
}
当我运行以下命令时,args会通过:
npm run takes-args -- -env dev
但是当我通过其他脚本运行它时,它永远不会得到args。有没有办法让他们失望?也许通过像美元符号这样的可变标记?
//The top-level script gets the args, BUT takes-args does NOT
npm run calls-takes-args -- -env dev
有什么办法吗?
答案 0 :(得分:5)
您的context = this; /*here 'this' refers to your activity's context*/
字段应如下所示:
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
。成功了!
如果你没有将任何参数传递给npm run takes-args -- -env dev
,则跟踪calls-takes-args
不会受到伤害。
编辑:
如果您不想/不想修改--
,则可以运行
package.json
这将运行npm run calls-takes-args -- -- -env dev
。