Ich habe eine Rails-Anwendung, die React, Webpack und Yarn für die Clientseite verwendet. Ich habe alles im Zusammenhang mit der Client-Seite im Verzeichnis / Client. Dies beinhaltet meine Dateien gam.lock und package.json. Ich habe eine Procfile, die in / client und richtig läuft yarn run build
. Dies funktioniert lokal ohne Fehler. Wenn ich jedoch Heroku deploy / push, wird mein Push abgelehnt und ich erhalte den folgenden Fehler:
Was mir das sagt, ist, dass Heroku in der Root-Ebene keine gam.lock-Datei finden konnte. Wie bekomme ich Heroku, um die yarn.lock
-Datei in meinem / Client-Verzeichnis zu verwenden?
Oder ist die Ursache dieses Fehlers etwas völlig anderes?
Ich habe gerade eine ähnliche Sache durchgemacht. Sie müssen die Buildpacks so bestellen, dass der Knoten an erster Stelle steht. Wenn sich ein yarn.lock in Ihrem root dir befindet (oder das Garn in Ihrem "engines" Schlüssel ist, wie in @ remydibs Antwort), dann installiert der node buildpack Garn und dann Ihre Pakete. Wenn Sie ein yarn.lock
in / client haben, setzen Sie eins in root und fügen Sie ein postinstall
script hinzu, das cd client && yarn run build
sagt.
In meinem Fall (Rake-Assets: Vorkompilierung ruft Garn auf und scheitert), aus irgendeinem Grund, wenn die Buildpacks rubinrot werden - & gt; Node, Heroku wartet nicht auf die Installation des Knotens, bevor versucht wird, Rake-Tasks auszuführen, und wir gehen kablooie.
Hoffe, das hilft.
Ich füge eine Antwort zum Dokument hinzu, einen anderen möglichen Anwendungsfall. Ich habe etwas ähnliches erlebt, mehrere Buildpacks und ich habe alles in allen Antworten überprüft:
node-js
wurde zuerst in .buildpacks
file yarn.lock
wurde im Stammverzeichnis des Projekts hinzugefügt package.json
deklariert wurde
Nichtsdestotrotz hat yarn
nicht abgeholt, seit ich eine ältere Version von node-js buildpack benutzt habe.
Stoßen die Version des Buildpack die neuesten lösen mein Problem:
%Vor%Tags und Links ruby-on-rails heroku procfile yarnpkg