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 次 |
| 最近记录: |