node.js - 有条件地运行 npm 脚本

标签 node.js heroku npm

我有 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/

相关文章:

node.js - 如何从redis中的值中获取键并通过检查其值删除其他键?

ruby-on-rails - RoR Heroku 的 Chef Recipe

django - Heroku/Django : Could not import user-defined GEOMETRY_BACKEND "geos"

ruby - 使用 dm-migrations 推送到 Heroku 时出现问题

node.js - Npm install 包含 "https://registry.npmjs.org"依赖项

json - 有没有办法可以阻止默认图标出现并阻止它被单击?

node.js - NodeJS 针对 POST 方法弹出警报

javascript - 使用 Node 和 FS 制作我自己的 "database"

caching - npm http-server 一直缓存我的 App.js

node.js - 如何使用环回模型查询来查询嵌套对象?