node.js - 将参数传递给组合的 npm 脚本

标签 node.js bash npm webpack gulp

我的 package.json 中有以下内容

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

我现在想将参数“主题”传递给 gulp 和 webpack,以便能够从命令行调整构建过程的输出。

我想出了如何将它传递给 webpack: npm run prod -- --env.theme=themename 但 gulp 不处理这个。我还通过将 npm 脚本更改为 "gulp build --product\"$1\来尝试使用 yargs-package、processs.argv 和 bash 字符串替换“&& webpack --env.config=development” 但这也没有成功。

如何实现这一目标?我缺少什么?任何提示都非常感谢!

最佳答案

如果您使用的是 Bash,则可以使用 function在你的 npm 脚本中。

例如:

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

但是,对于跨平台解决方案,您需要考虑调用一个执行命令的 Nodejs 脚本 - 与我的答案 here解决方案 2 中显示的方式类似。 .

关于node.js - 将参数传递给组合的 npm 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51590079/

相关文章:

linux - 如何基于 shell 脚本中的行创建 CSV 文件?

node.js - Docker Build 在 GCP Cloud Build 中失败 - 但在 localhost 中成功

javascript - 身份验证 POST 适用于 'request' 但不适用于 'node-fetch'

linux - Bash 将 stderr 和 stdout 重定向到函数停止执行

vue.js - “Cannot read property '在启动vue应用程序时升级' of undefined”

Javascript 字符串是否位于括号之间?

javascript - 如何使用reactjs生成nodejs Express应用程序

node.js - 如何删除MongoDB集合中的TTL?

json - ExpressJS POST 无法记录正文

linux - 仅当第二个文本文件中也存在时,才基于第一个文本文件中的第二个字段组合两个文本文件