2017-09-10 3 views
0

Ich verwende heroku/nodejs Build Pack.Knoten Anwendung Heroku Anwendungsfehler

dies ist, wie meine Skripte in package.json wie folgt aussehen:

"scripts": { 
    "build": "webpack --config webpack.prod.js", 
    "server": "http-server public -p 3000 -a localhost -c 0", 
    "prod": "npm run build && npm run server", 
    "dev": "webpack-dev-server --config webpack.dev.js", 
    "lint": "eslint . --fix" 
}, 

In procfile habe ich nur eine Zeile Code:

web: npm run prod

Irgendwelche Ideen, warum ich Anwendungsfehler sehe ?

+1

Ich denke, wir brauchen noch mehr Informationen. Versuche "heroku logs --tail" vom Heroku cli zu laufen. Diese Seite, die ich gefunden habe, könnte helfen: https://kb.heroku.com/why-am-i-seeing-application-error –

+1

Sie müssen die $ PORT env von Heroku in Ihrem "Server" -Skript statt der 3000 verwenden Hafen. –

+0

Wenn Sie den Befehl "server" als einfachen 'http-server' posten, akzeptiere ich Ihre Antwort. Ich musste allerdings etwas googlen und debuggen. Auch Heroku installiert offenbar Dev-Abhängigkeiten nicht. – Michal

Antwort

0

In Bezug auf die Fehler, denke ich, dass Sie die Umgebungsvariable $PORT heißt http-server public -p $PORT -c 0 sicher, dass Sie in Sie deps haben http-server Stellen verwenden sollten und nicht Ihre devDeps.

Dies verursacht möglicherweise nicht den Fehler, aber Sie sollten nicht auf Build erstellen. Stattdessen fügen Sie den Build-Schritt zu einem postinstall NPM-Skript wie unten hinzu.

"scripts": { "build": "webpack --config webpack.prod.js", "postinstall": "npm run build", "server": "http-server public -p $PORT -c 0", "prod": "npm run server", "dev": "webpack-dev-server --config webpack.dev.js", "lint": "eslint . --fix" },

Dadurch wird sichergestellt, dass Ihr Build auf die Bereitstellung und nicht jedes Mal, wenn der Knoten beginnt ausgefuehrt wird.

+0

FYI du brauchst keine 'procfile' wenn du einen 'npm run start' hast Ich würde' prod' einfach in 'start' umbenennen und' procfile' löschen – serby

Verwandte Themen