如何在Heroku上使用Node.js在部署和重启时运行2个不同的命令?

时间:2016-10-05 07:02:40

标签: node.js heroku deployment

我正在编写Node.js应用程序并使用Heroku来托管它。我还使用Webpack + Babel将我的所有服务器文件捆绑成一个并使用ES2015语法。但问题是,我需要在运行之前构建我的应用程序。所以我将此命令放入package.json

"scripts": {
  "start": "webpack && node build/server.js"
},

这样可行,但问题是,当我运行heroku restart时,我的应用程序仅在重建后运行。当我的应用程序崩溃时,同样的故事。

所以我想我需要2个不同的命令:一个在部署(webpack)而一个在npm startnode build/server.js

我该如何做到这一点?

1 个答案:

答案 0 :(得分:1)

实际上并没有那么难。只需将package.json更改为

即可
"scripts": {
  "heroku-postbuild": "webpack",
  "start": "node build/server.js"
}

(根据这篇文章:Heroku Node.js Support