Ich habe zwei Hauptkonfigurationen - dev und prod. Ich schiebe Updates auf einen Heroku-Server, der npm install --production ausführt, um meine App zu installieren. In der package.json habe ich folgendes Segment:
%Vor%, das eine make-Datei ausführt, die dafür verantwortlich ist, den Code und einige andere kleinere Dinge zu verfälschen.
Ich muss dieses Makefile jedoch nicht im Entwicklungsmodus ausführen. Gibt es eine Möglichkeit, Skripte mit npm konditional auszuführen? ..
Danke!
Sie können so etwas in Ihrem package.json
definieren (ich bin mir sicher, dass es eine bessere Abkürzung für die if
-Anweisung gibt.)
Wenn Sie dann npm
mit dem Produktionsflag ausführen, wie Sie es angegeben haben, tun Sie das bereits
wird Ihr make install
ausführen, weil $NODE_ENV = production
Wenn ich einige Aufgaben bedingt ausführen muss, übergebe ich Umgebungsvariablen an das Skript / Programm und kümmere mich um diese Logik. Ich führe meine Skripte so aus.
%Vor% und in package.json
, würden Sie ein Skript / Programm
würde den Wert der Umgebungsvariablen überprüfen, um zu bestimmen, was zu tun ist. In runner.js
mache ich so etwas wie folgt
Können Sie keinen weiteren Abschnitt in Ihrer .json unter devDependencies hinzufügen? Dann, wenn Sie npm installieren, würde es die Pakete installieren, die unter devDependincies angegeben sind und npm install --production würde die normalen Abhängigkeiten installieren.
Ich würde Sie ermutigen, einen anderen Weg zu gehen, Ihren Code zu ugifizieren. Sehen Sie sich connect-browserify oder die noch leistungsstärkeren asset-rack .
Diese können Ihren Code beim Start des Express-Servers und nicht bei der Installation automatisch vereinheitlichen. Und Sie können sie konfigurieren, um verschiedene Dinge in Entwicklung und Produktion zu tun.