web-dev-qa-db-ja.com

Webpackを使用するノードをherokuにデプロイする方法

私はwebpackを使用しています。

また、生成されたすべてのファイルがあるnpm_modulesフォルダーとパブリックフォルダーはコミットしません。また、サーバーを展開してセットアップした後(既にパブリックフォルダーを探している)、アプリをビルドする方法を理解できません(webpackビルドコマンドがあります)。

アップロードする前にコミットするのは悪い考えのようです。たぶんいくつかの穏やかな決定があります...何か考えはありますか?

分岐元: Gulpを使用するノードをherokuにデプロイする方法

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

postinstallを使用すると、毎回npm iビルドスクリプトが起動します

64

@orlandoが提案するpostinstallスクリプトで実行します。

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

このアプローチでは、heroku config:set NODE_ENV=productionheroku config:set NPM_CONFIG_PRODUCTION=true

[〜#〜] or [〜#〜]

これを見つけることができますカスタムbuildpackheroku-buildpack-webpack 使用可能。

これらのリンクは、理解を深めるのに役立ちます。

14

2019年にこれを行う最も簡単な方法は、heroku/nodejs buildpack(package.jsonリポジトリのルートで)buildスクリプトを追加してjsonをパッケージ化します。

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

Herokuは、デプロイ時にこのスクリプトを自動的に実行します。これは、ビルドをローカルまたはCIでテストするために実行する直感的なスクリプトだからです。

これは、Herokuの Node.js開発のベストプラクティス ドキュメントで説明されています。

npmのライフサイクルスクリプトは、自動化のための優れたフックとなります。 Herokuには、依存関係をインストールする前または後にカスタムコマンドを実行できるカスタムフックが用意されています。アプリを作成する前に何かを実行する必要がある場合は、heroku-prebuild 脚本。単刀直入な、gulp、browserify、webpackでアセットを構築する必要がありますか? buildスクリプトで実行します。

1
ford