Razzle: デプロイ中はHerokuでポートを使用できません

作成日 2017年09月06日  ·  3コメント  ·  ソース: jaredpalmer/razzle

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.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
  },
}

多分このようなもの?

全てのコメント3件

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
  },
}

多分このようなもの?

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

jcblw picture jcblw  ·  4コメント

kkarkos picture kkarkos  ·  3コメント

ewolfe picture ewolfe  ·  4コメント

knipferrc picture knipferrc  ·  5コメント

charlie632 picture charlie632  ·  4コメント