Wenn ich meinen Code zu OpenShift drücke, sieht es so aus, als ob es meine devDependencies
installiert, die für immer dauert. Ich würde es wirklich lieben, es so einzurichten, dass es nur die dependencies
installiert (indem es mit dem --production
Flag läuft). Gibt es eine Möglichkeit, dies zu tun?Run npm install --production on OpenShift
Antwort
Sie können npm mit dem Flag --production
installieren, indem Sie die Umgebungsvariable NPM_CONFIG_PRODUCTION
auf "true
" setzen.
Hier ist ein Beispiel, das für bestehende Anwendungen funktionieren sollte:
rhc env set NPM_CONFIG_PRODUCTION="true"
Oder Sie diese Variable kann als Teil Ihrer ersten App erstellen Schritt:
rhc app create myapplication nodejs-0.10 NPM_CONFIG_PRODUCTION="true"
Es sieht so aus, als ob die einzige Lösung darin besteht, die Kassette selbst zu aktualisieren. Der Befehl npm install befindet sich im Ordner bin/control der Kassette. In der Zwischenzeit wurde es in der originating github repo at wshearn/openshift-origin-cartridge-nodejs behoben, so dass Sie nur von Github installieren können, anstatt den Quickstart zu verwenden.
Danke für den Tipp John nicht installiert sind. Ich sehe im Github Repo, wo dieser Befehl passiert. Leider habe ich den Schnellstart installiert und es gibt keine bin/control Datei. Sie wissen nicht, wo ich die Änderung im Schnellstart machen könnte? – kentcdodds
Ich bin mir nicht sicher, ob das das offizielle Repo ist. Es scheint, der Code zur Zeit auf RHcloud.com verwendet wird, ist https://github.com/openshift/origin-server/tree/master/cartridges/openshift-origin-cartridge-nodejs; es macht [versuchen NODE_ENV = Produktion einstellen] (https://github.com/openshift/origin-server/commit/97124748e41d01ace67df931908755f84ecfdbae), aber ich bin devDependencies trotzdem installiert sehen. –
einen Weg gefunden, um es in der Quelle anstatt während der App-Erstellung anzugeben. Der Vorteil (für mich) über ein env var ist, dass es für alle Möglichkeiten gilt, die App zu starten, einschließlich einer Schaltfläche "Auf OpenShift starten".
Eine .openshift/action_hooks/pre_build
Datei:
#!/bin/bash
# This makes npm not install devDependencies.
echo 'Enabling npm production'
echo 'production = true' >> $OPENSHIFT_REPO_DIR/.npmrc
Das ist es! Ich habe getestet und es betrifft npm für diesen Build, und die .npmrc verschwindet, wenn Sie diesen Hook in Zukunft entfernen.
(Natürlich könnte ich dies auch erreichen, indem einfach ein .npmrc
meinen Repo hinzufügen, aber tue nicht will die Menschen die Quelle Check-out beeinflussen und laufen npm install
, nur, wie es auf Openshift arbeitet.)
Erstellen Sie eine
.npmrc
Datei, in der sich der Ordnernode_modules
befindet.Öffnen Sie es mit Ihrem
text-editor
und fügen diese zu ihm:production = true
P. S. keine Semikolons oder andere Zeichen
Dadurch wird sichergestellt, dass devDependencies
auf den OPENSHIFT
Server
- 1. Install Less auf Python-Cartridge Openshift
- 2. `npm install` einen Fehler Gibt
- 3. npm install --save-dev gulp-install
- 4. Kann ich eine Standardinstallation von npm install und npm install haben? (Wie in Schluck)
- 5. npm install peerDependencies
- 6. install express mit npm
- 7. npm install: spezifiziere package.json?
- 8. npm install installiert keine Abhängigkeiten
- 9. Docker. npm install -> Fehler: getaddrinfo ENOTFOUND
- 10. npm install nicht lesen package.json
- 11. npm run tut nichts
- 12. `npm install` Ausgabe auf Jenkins
- 13. `npm install` endet mit "Killed"
- 14. Angular2 Node und npm install
- 15. schlucken google-webfonts npm install
- 16. npm install: WARN auf Abhängigkeit
- 17. Run npm von Unterverzeichnissen auf Heroku
- 18. Run Npm und Knoten von ansible
- 19. docker: npm install auf docker start
- 20. Run webpack mit npm Skripte
- 21. angular2 quickstart npm install schlägt fehl
- 22. npm install funktioniert nicht, wenn npm ausgeführt wird cordova installieren
- 23. npm install fehler kann typen nicht lesen
- 24. npm install generiert riesige Liste von Fehlern
- 25. npm install fehler in eckigen seed
- 26. spawnSync ('npm', ['install']) gibt [Fehler: spawnSync npm ENOENT]
- 27. NPM: Nur fehlende installieren - wie zu beschleunigen npm install
- 28. `npm install` für große Paket.json gekillt, kein npm-debug.log
- 29. Quelle herunterladen von npm ohne npm install xxx
- 30. Wie behebt man das bei npm install: (npm ERR! Install Konnte Abhängigkeiten nicht lesen)?
Ist das neu? Ich habe das nirgendwo gesehen ... – kentcdodds
Es ist in der Openshift-Dokumentation angegeben: https://developers.openshift.com/en/node-j.s-environment- variables.html. Und außerdem funktioniert es! –
Mit dem Optionsformular des Befehls ist es 'rhc app create -a meineAnwendung -t nodejs-0.10 --env NPM_CONFIG_PRODUCTION =" true "'. –