Razzle: Port tidak tersedia di Heroku selama penyebaran

Dibuat pada 6 Sep 2017  ·  3Komentar  ·  Sumber: jaredpalmer/razzle

Saya menyebarkan ke Heroku, dan saya menyertakan skrip berikut di package.json :

"scripts": {
  "heroku-postbuild": "yarn run build"
  "start": "NODE_ENV=production node build/server.js"
}

Sayangnya, PORT env var tidak diketahui pada waktu pembuatan dan sebaliknya ditetapkan oleh Heroku pada waktu berjalan, dan karena razzle perlu mengetahui port pada waktu pembuatan, itu berarti saya harus membangun sebelum memulai server. Dengan mengingat hal itu, saya mencoba mengubah skrip saya agar terlihat seperti berikut:

"scripts": {
  "start": "NODE_ENV=production yarn run build && node build/server.js"
}

Sayangnya, itu memakan waktu terlalu lama dan akhirnya mengikat setelah batas waktu Heroku 60 detik:

06-09-2017T01:23:13.536789+00:00 aplikasi[web.1]: Mengkompilasi klien...
09-06T01:23:14.395857+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Proses web gagal mengikat $PORT dalam waktu 60 detik setelah peluncuran
09-06T01:23:14.395963+00:00 heroku[web.1]: Menghentikan proses dengan SIGKILL
09-06T01:23:14.499913+00:00 heroku[web.1]: Proses keluar dengan status 137
09-06T01:23:14.509625+00:00 heroku[web.1]: Status berubah dari mulai mogok

Apakah ada cara agar kami tidak memerlukan port pada waktu pembuatan? Mengapa itu dibutuhkan?

Komentar yang paling membantu

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

Mungkin sesuatu seperti ini?

Semua 3 komentar

Anda dapat menggunakan razzle-heroku :) Ini memperluas konfigurasi razzle default untuk membuatnya berfungsi di heroku.

Ahh, tidak tahu tentang itu, terima kasih telah menunjukkannya! Jika saya sudah memiliki razzle.config.js dengan fungsi kustom modify , apakah ada cara agar saya tetap dapat menggunakannya sambil menggunakan 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
  },
}

Mungkin sesuatu seperti ini?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

dizzyn picture dizzyn  ·  3Komentar

piersolenski picture piersolenski  ·  4Komentar

Jayphen picture Jayphen  ·  4Komentar

alexjoyner picture alexjoyner  ·  3Komentar

howardya picture howardya  ·  5Komentar