将参数传递给组合的npm脚本

时间:2018-07-30 08:43:03

标签: node.js bash npm webpack gulp

我的package.json中包含以下内容

"scripts": {
    ...
    "prod": "gulp build --production && webpack --env.config=production"
}

我现在想同时向gulp和webpack传递一个参数“ theme”,以便能够从命令行调整构建过程的输出。

我想出了如何将其传递到webpack:npm run prod -- --env.theme=themename,但是gulp并没有解决这个问题。我还通过将npm脚本更改为yargs来处理processs.argv-程序包,"gulp build --production \"$1\" && webpack --env.config=production"和bash字符串替换,但是都没有解决。

如何实现?我想念什么?任何提示高度赞赏!

1 个答案:

答案 0 :(得分:1)

如果您正在使用Bash,则可以在npm脚本中使用function

例如:

"scripts": {
    ...
    "prod": "func() { gulp build --production \"$1\" && webpack --env.config=production \"$1\"; }; func"
}

但是,对于跨平台解决方案,您需要考虑调用执行命令的nodejs脚本-以类似于答案here解决方案2 中所示的方式。