2017-07-23 3 views
0

Ich versuche, einen Web-App Heroku zu implementieren, aber halte diese Fehler:Wie bekomme ich Heroku, um nodejs buildpack zu erkennen?

`-----> Failed to detect app matching https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/nodejs.tgz buildpack` 

Hier ist eine vereinfachte Blick meiner app Dateistruktur:

myProject 
|__server 
    |__server.js 
|__react_component_1 
|__react_componet_2 
|__styles</p> 

Der Express-Server ist die server.js im Server-Verzeichnis und es wird der Einstieg in meine App.

Es scheint, wie diese Frage schon oft und ich habe gelesen, alle Antworten gefragt wurde, hier ist was ich versucht habe:

Ich Bereitstellung aus dem Stammordner, myProject, die kein Paket hatte .json-Datei. Ich habe versucht, npm init ein package.json einzurichten, damit Heroku die App als nodejs erkennen kann. Ich habe auch sichergestellt, dass package.json von git verfolgt wird. Ich habe eine Procfile gemacht: web: cd server && npm run start. Ich habe den Befehl im CLI ausgeführt, um buildpack zu setzen: heroku buildpacks:set heroku/nodejs, aber bisher hat nichts davon funktioniert. Ich habe auch buildpacks:clear ausprobiert, nachdem ich alles eingerichtet habe, um zu sehen, ob heroku Buildpacks jetzt automatisch erkennen kann, dass ich ein package.json habe.

Jede Hilfe ist willkommen, danke.

+0

Bitte hinter der Ausgabe dessen, was in Ihrem Terminal angezeigt wird, nachdem Sie 'heroku logs -n 300' eingegeben haben, um die letzten 300 Zeilen der Log-Ausgabe anzuzeigen. Etwas, das dort einen klaren Grund geben könnte, was das Problem verursacht –

+0

Ich bin nicht berechtigt, meinen Kommentar aus irgendeinem Grund zu bearbeiten. Würde sagen, "paste" die Ausgabe, nicht hinter –

Antwort

0

Nach Heroku relevanten documentation on Node.js buildpacks:

The Heroku Node.js buildpack is employed when the application has a package.json file in the root directory.

Basierend auf Ihrem procfile Inhalt, web: cd server && npm run start, die wie Sie Verzeichnis liefen npm init im Server sieht, nicht das Root-Verzeichnis.

Ich denke, wenn Sie package.json und die node_modules Ordner ein Verzeichnis auf den Stamm verschieben, wird das Buildpack-Problem gelöst werden. Stellen Sie nur sicher, dass Sie Ihre Procfile in web: npm run start ändern, da es sich um dasselbe Verzeichnis handelt.

+0

Hallo Pat, danke für die Antwort - der Server-Ordner und beide der Komponenten-Ordner haben jeweils ihre eigenen package.json, lief ich npm init, wenn ich das Projekt gerüstet, aber npm init wurde im Stammordner (myProject) nicht ausgeführt. Ich habe jedoch npm init ausgeführt, als ich auf dieses Problem stieß. Nur zum Spaß, während ich nach dem Posten auf Antworten wartete, habe ich den Inhalt des Server-Ordners in den Stammordner (myProject) verschoben, und wenn ich versuche, ihn zu deployen, bekomme ich die gleiche Nachricht. –

+0

** Fortsetzung ** Ich habe dann alles wiederhergestellt, cd'ed in den Stammordner, meine heroku App gelöscht, 'heroku create' noch einmal ausgeführt, um zu sehen, ob es mein Projektstrukturproblem ist, dasselbe Problem. Ich hoffe, dass das mehr Informationen liefert. Vielen Dank noch mal. –

+0

Warum reagieren beide Komponentenordner auf ihr eigenes package.json? –

Verwandte Themen