Wie man Heroku dazu bringt, einen gam.lock oder package.json in einem Unterverzeichnis (nicht root) zu erkennen

7

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:

%Vor%

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?

    
Doug 25.03.2017, 21:06
quelle

6 Antworten

6

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.

    
Frank Kotsianas 27.05.2017, 09:14
quelle
11

Stellen Sie sicher, dass Sie sowohl Ruby- als auch Node-Buildpacks verwenden. Ich habe diesen Fehler bekommen, als ich nicht.

Führen Sie diese in Ihrem Stammordner aus:

%Vor%

Quellen: Ссылка

Ссылка

    
remydib 02.04.2017 16:39
quelle
1

Vielleicht können Sie versuchen, package.json einzugeben

%Vor%     
YuTin 28.03.2017 09:55
quelle
0
  1. So verwenden Sie yarn , um die Abhängigkeiten Ihrer Anwendung zu installieren

    a) yarn.lock sollte in der Wurzel des Repos vorhanden sein. %Code% b) yarn install sollte entfernt werden package-lock.json

  2. Um git rm package-lock.json

    zu verwenden

    a) npm sollte entfernt werden

Quelle: Ссылка

Ссылка

    
Pav31 11.08.2017 06:04
quelle
0

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
  • deklariert
  • a yarn.lock wurde im Stammverzeichnis des Projekts hinzugefügt
  • Garnabhängigkeit, die unter Motoren auf 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%     
a--m 26.02.2018 08:20
quelle
0

Sie können sowohl package.json als auch yarn.lock behalten, indem Sie eine von diesen hinzufügen .slugignore.

Es funktioniert wie .gitignore - es definiert nur, welche Dateien ignoriert werden sollen, die an Heroku gesendet werden.

Weitere Informationen finden Sie hier

    
George H. 10.04.2018 15:30
quelle