如何将命令行参数传递给嵌套脚本?
How to pass a command line argument to a nested script?
注意:这不是关于将 args 发送到顶级脚本,而是发送到由 that script
在我的 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
运行s npm run takes-args -- -env dev
.成功!
如果您不向 calls-takes-args
传递任何参数,则尾随 --
不会有任何问题。
编辑:
如果你t/don不想修改你的package.json
,你可以运行
npm run calls-takes-args -- -- -env dev
那将 运行 somemodule -env dev
。
注意:这不是关于将 args 发送到顶级脚本,而是发送到由 that script
在我的 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
运行s npm run takes-args -- -env dev
.成功!
如果您不向 calls-takes-args
传递任何参数,则尾随 --
不会有任何问题。
编辑:
如果你t/don不想修改你的package.json
,你可以运行
npm run calls-takes-args -- -- -env dev
那将 运行 somemodule -env dev
。