Don*_*mmy 2 javascript node.js npm node-modules npm-scripts
注:这是不是发送参数传递给顶层的脚本,但被调用的脚本是脚本
在我的package.json中,当我调用一个直接接受命令行args的脚本时,它可以工作.但是当我调用一个调用其他脚本的脚本时,它并没有将命令行args传递给它.我如何通过它们?
{
...
"takes-args": "somemodule",
"calls-takes-args": "npm run takes-args"
}
Run Code Online (Sandbox Code Playgroud)
当我运行以下命令时,args会通过:
npm run takes-args -- -env dev
Run Code Online (Sandbox Code Playgroud)
但是当我通过另一个脚本运行它时,它永远不会得到args.有没有办法让他们失望?也许通过像美元符号这样的可变标记?
//The top-level script gets the args, BUT takes-args does NOT
npm run calls-takes-args -- -env dev
Run Code Online (Sandbox Code Playgroud)
有什么办法吗?
您的scripts
字段应如下所示:
{
...
"takes-args": "somemodule",
"calls-takes-args": "npm run takes-args --"
}
Run Code Online (Sandbox Code Playgroud)
请注意--
结尾处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
运行npm run takes-args -- -env dev
.成功!
如果你没有传递任何参数calls-takes-args
,尾随--
不会受到伤害.
编辑:
如果你不能/不想修改你的package.json
,你可以运行
npm run calls-takes-args -- -- -env dev
Run Code Online (Sandbox Code Playgroud)
那将会运行somemodule -env dev
.
归档时间: |
|
查看次数: |
1367 次 |
最近记录: |