注意:这不是将 args 发送到顶级脚本,而是发送到由那个脚本调用的脚本
在我的 package.json 中,当我调用一个直接接受命令行参数的脚本时,它可以工作。但是当我调用一个调用另一个脚本的脚本时,它不会将命令行参数传递给它。我如何通过它们?
{
...
"takes-args": "somemodule",
"calls-takes-args": "npm run takes-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
有什么办法吗?
最佳答案
您的 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
。
关于javascript - 如何将命令行参数传递给嵌套脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40495116/