Herokuにデプロイしていて、 package.json
次のスクリプトを含めました。
"scripts": {
"heroku-postbuild": "yarn run build"
"start": "NODE_ENV=production node build/server.js"
}
残念ながら、 PORT
env varはビルド時に認識されず、代わりに実行時にHerokuによって割り当てられます。また、razzleはビルド時にポートを認識する必要があるため、サーバーを起動する前にビルドする必要があります。 そのことを念頭に置いて、スクリプトを次のように変更してみました。
"scripts": {
"start": "NODE_ENV=production yarn run build && node build/server.js"
}
残念ながら、これには時間がかかりすぎて、60秒のHerokuタイムアウト後にバインドされてしまいます。
2017-09-06T01:23:13.536789 + 00:00 app [web.1]:クライアントをコンパイルしています...
2017-09-06T01:23:14.395857 + 00:00 heroku [web.1]:エラーR10(ブートタイムアウト)-> Webプロセスが起動から60秒以内に$ PORTにバインドできませんでした
2017-09-06T01:23:14.395963 + 00:00 heroku [web.1]:SIGKILLでプロセスを停止しています
2017-09-06T01:23:14.499913 + 00:00 heroku [web.1]:プロセスはステータス137で終了しました
2017-09-06T01:23:14.509625 + 00:00 heroku [web.1]:状態が開始からクラッシュに変更されました
ビルド時にポートを要求できなかった方法はありますか? とにかくなぜそれが必要なのですか?
razzle-herokuを使用できます:)デフォルトのrazzle構成を拡張して、herokuで機能するようにします。
ああ、それについて知らなかった、それを指摘してくれてありがとう! カスタムmodify
関数を使用してrazzle.config.js
を既に持っている場合、razzle-herokuを使用しながらそれを使用できる方法はありますか?
// razzle.config.js
const razzleHeroku = require("razzle-heroku")
module.exports = {
modify: (config, {target, dev}, webpack) => {
config = razzleHeroku(config, {target, dev}, webpack)
// do something to config
return config
},
}
多分このようなもの?
最も参考になるコメント
多分このようなもの?