Razzle: Port auf Heroku während der Bereitstellung nicht verfügbar

Erstellt am 6. Sept. 2017  ·  3Kommentare  ·  Quelle: jaredpalmer/razzle

Ich stelle Heroku bereit und habe die folgenden Skripte in mein package.json :

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

Leider ist die env var PORT zur Build-Zeit nicht bekannt und wird stattdessen von Heroku zur Laufzeit zugewiesen. Vor diesem Hintergrund habe ich versucht, meine Skripte so zu ändern, dass sie wie folgt aussehen:

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

Das dauert leider zu lange und endet nach dem 60-Sekunden-Heroku-Timeout bindend:

2017-09-06T01:23:13.536789+00:00 app[web.1]: Client wird kompiliert...
2017-09-06T01:23:14.395857+00:00 heroku[web.1]: Fehler R10 (Boot-Timeout) -> Webprozess konnte innerhalb von 60 Sekunden nach dem Start nicht an $PORT gebunden werden
2017-09-06T01:23:14.395963+00:00 heroku[web.1]: Prozess stoppen mit SIGKILL
2017-09-06T01:23:14.499913+00:00 heroku[web.1]: Prozess mit Status 137 beendet
2017-09-06T01:23:14.509625+00:00 heroku[web.1]: Status geändert von Start auf Absturz

Gibt es eine Möglichkeit, dass wir den Port zur Build-Zeit nicht benötigen? Warum wird es dann überhaupt benötigt?

Hilfreichster Kommentar

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

Vielleicht sowas?

Alle 3 Kommentare

Sie können razzle-heroku verwenden :) Es erweitert die Standard-Razzle-Konfiguration, damit es auf Heroku funktioniert.

Ahh, das wusste ich nicht, danke für den Hinweis! Wenn ich bereits razzle.config.js mit einer benutzerdefinierten modify Funktion habe, kann ich diese dann noch verwenden und gleichzeitig razzle-heroku verwenden?

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

Vielleicht sowas?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

dizzyn picture dizzyn  ·  3Kommentare

ewolfe picture ewolfe  ·  4Kommentare

sebmor picture sebmor  ·  4Kommentare

corydeppen picture corydeppen  ·  3Kommentare

kkarkos picture kkarkos  ·  3Kommentare