小知识|npm scripts 如何将参数正确传递运行的脚本
问题
在公司项目的
package.json
文件中有个scripts
命令:npm run component:add
,在命令行输入npm run component:add -g aa -n bb -d cc
后,显示的命令变成了node ./packages/scripts component:add aa bb ccc
,-
都不见了,甚至报错了
解决
- 这里需要用到
--
,将参数传递给实际的命令
npm run component:add -- -g aa -n bb -d cc |
在npm scripts
中,--
的作用是告诉npm
,之后的参数应该传递给运行的脚本,而不是npm
自身。当运行npm run script-name -- arg1 arg2
时,--
之后的参数会被传递给script-name
对应的脚本。
这是因为npm
在运行脚本时,它会收集所有在npm run
命令之后的参数,并将它们传递给实际执行的命令。但是,如果实际执行的命令也以-
开头,npm可能会尝试解析这些参数,而不将它们传递给运行的脚本。
通过使用--
,将告诉npm
停止解析参数,并将其余的参数传递给脚本。这样,你就可以确保你的脚本正确地接收到所有的参数。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 晚风予星!
评论