如何将使用Webpack的节点部署到heroku

时间:2016-03-25 15:41:23

标签: node.js heroku webpack

我正在使用网络包。

此外,我还没有提交npm_modules文件夹和公共文件夹,其中包含所有生成的文件。在部署和设置我的服务器(它已经在寻找公共文件夹)之后,我无法弄清楚如何构建我的应用程序(我有webpack build命令)。

在上传之前提交我似乎是一个坏主意。也许有一些温和的决定......有什么想法吗?

来自:How to deploy node that uses Gulp to heroku

3 个答案:

答案 0 :(得分:64)

"heroku-postbuild": "webpack -p --config ./webpack.prod.config.js --progress"

这样更好,因为如果您使用postinstall,每次执行npm i构建脚本都会被解雇

答案 1 :(得分:14)

按@orlando所建议的postinstall脚本执行:

"postinstall": "webpack -p --config ./webpack.prod.config.js --progress"

在此方法中,请务必heroku config:set NODE_ENV=production heroku config:set NPM_CONFIG_PRODUCTION=true

您可以找到自定义buildpack heroku-buildpack-webpack可用。

这些链接可能有助于您建立理解:

答案 2 :(得分:1)

2019年,最简单的方法是使用heroku/nodejs buildpack(如果您在存储库的根目录中有package.json,则会自动选择)并添加一个build脚本打包json:

"build": "webpack --mode production --config ./webpack.prod.config.js"

Heroku将在部署时自动运行此脚本。奖励点是因为这是运行在本地或CI中测试构建的直观脚本。

这在Heroku的Best Practices for Node.js Development文档中有所描述:

  

npm的生命周期脚本非常适合自动化。 Heroku提供了自定义钩子,使您可以在安装依赖项之前或之后运行自定义命令。如果需要在构建应用程序之前运行某些程序,则可以使用heroku-prebuild脚本。需要使用grunt,gulp,browserify或webpack构建资产吗?用build脚本来完成。