注意:这不是将参数发送给顶级脚本,而是发送给调用的脚本脚本
在我的包里。当我调用一个直接接受命令行参数的脚本时,它可以工作。但是当我调用调用另一个脚本的脚本时,它并没有传递命令行参数给它。我怎样通过考试?
{
...
"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
有办法吗?
您的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
这将运行somemodule -env dev