2013-02-06 10 views
29

Bower ist für Client-Seite Javascript, was Npm ist für die Server-Seite und liest eine component.json Datei, um Abhängigkeiten zu erkennen, die zur Bereitstellungszeit abgerufen werden sollte, so würde ich mich freuen, es Heroku würde es zur Slug Compilierungszeit ausführen.Wie kann ich npm in der heroku-Befehlszeile aufrufen (um Bower-Komponenten zu installieren)?

Leider kann ich nicht npm oder Bower von einer Heroku Konsole oder ein Aus-Befehl (heroku run "npm help") aufrufen (heroku run bash ->npm help), wie es möglich ist, mit Rubys Harke. Ich habe npm und Knoten (neueste/X-Versionen) in meinem package.json aber in den Engines Abschnitt, nicht die Abhängigkeiten.

Ich denke, das könnte durch die Anpassung der node buildpack gelöst werden, aber ich halte dies für eine etwas zu schwere Aufgabe nur für die Aktivierung etwas so offensichtlich.

+0

Zu den Antworten unten: was ist, wenn Sie wollen, um zu sehen, ob Ihr buildpack sicher npm ein installieren Paket, das binäre Abhängigkeiten hat. Das Hinzufügen einer package.json-Abhängigkeit erfordert ein 'git push heroku' zum Testen, während ein' heroku run npm install .... 'zum Testen verwendet wird, was sich nicht auf Ihre Produktion auswirkt. Ich muss noch herausfinden, wie man npm mit 'heroku run bash' ausführt. –

Antwort

61

Sie können auch ein Setup postintall Befehl, so etwas wie dies in Ihren package.json

"dependencies": { 
    "bower": "0.6.x" 
}, 
"scripts": { 
    "postinstall": "./node_modules/bower/bin/bower install" 
} 

Dann npm install auch Bower Abhängigkeiten installieren.

Pros: ein Befehl, um sie alle zu regeln.

Nachteile: Sie unnötig Bower als Abhängigkeit einbetten.

+0

Großartige Lösung, trotzdem wusste ich nichts über dieses Postinstall-Skript. Brauchen Sie mehr in npm docs zu graben ... –

+1

, um die Abhängigkeit für die neueste Bower zu installieren, führen Sie aus: 'Npm installieren --Save Bower' –

+0

Awesome! Ich habe nicht über diese Lösung nachgedacht. – JHannes

6

Sie können run wie folgt verwenden:

heroku run npm install git://github.com/webjay/kaiseki 
+0

Nun, das ist nur npm aufrufen (eigentlich war die Überschrift ein wenig irreführend) -> die Frage ist vor allem über die Installation Bower Abhängigkeiten nach der Installation. Ich habe nur npm als Beispiel genommen. Ihre Befehlszeile würde npm korrekt aufrufen, aber ich vergesse nicht, sie manuell aufzurufen -> die Lösung von xavier.seignard erledigt alles automatisch zur Bereitstellungszeit. – Stefan

+8

Das ist sehr nutzlos. Dies erzeugt einen temporären Dyno, führt den Befehl aus und zerstört ihn dann. Ihre echten Dynos bleiben davon unberührt. – sbichenko

0

Sie Bower direkt wie diese

können
"dependencies": { 
    "bower": "^1.7.9" 
}, 
"scripts": { 
    "postinstall": "sudo bower install --allow-root " 
} 
Verwandte Themen