我有 2 个主要的构建配置 - dev 和 prod。 我将更新推送到运行 npm install --production 以安装我的应用程序的 heroku 服务器。 在 package.json 我有以下部分:
"scripts": {
"postinstall": "make install"
}
运行一个负责丑化代码和其他一些小事情的 make 文件。
但是,我不需要在开发模式下运行这个 makefile。有什么方法可以有条件地使用 npm 运行脚本?..
谢谢!
最佳答案
您可以在 package.json
中定义类似的内容(我相信 if
语句有更好的简写方式。)
"scripts": {
"postinstall":"if test \"$NODE_ENV\" = \"production\" ; then make install ; fi "
}
然后,当您执行 npm
并像您所说的那样使用生产标志时,您已经这样做了
npm install --production
它将执行您的 make install
因为它将设置 $NODE_ENV = production
当我需要有条件地执行某些任务时,我将环境变量传递给脚本/程序,它负责处理该逻辑。我像这样执行我的脚本
NODE_ENV=dev npm run build
在 package.json
中,您将启动一个脚本/程序
"scripts": {
"build":"node runner.js"
}
它将检查环境变量的值以确定要做什么。在 runner.js
我做了类似以下的事情
if (process.env.NODE_ENV){
switch(process.env.NODE_ENV){
....
}
}
关于node.js - 有条件地运行 npm 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18766678/