Wie kann man den Pfad von `package.json` zu npm angeben?

73

Ich benutze npmSkripte, um mein Projekt zu erstellen. Ich möchte in der Lage sein, die Skripte aus einem anderen Verzeichnis auszuführen. Das heißt, anstatt Folgendes zu tun:

cd project;
npm run build;
cd ..

... Ich möchte einfach etwas tun wie:

npm run build -config project/package.json;

oder

npm run build -wd project;

Ist das möglich?

Rinogo
quelle
1
Mögliches Duplikat von stackoverflow.com/questions/30286498/…
rinogo
Ich glaube nicht, dass es möglich ist, da ich den entsprechenden Schalter nicht gefunden habe, um npm das wd mitzuteilen. Aber, ich denke , Sie Ihre Befehle innerhalb einer Unterschale nennen könnte so cmd /C "cd C:\ && npm -v"mehr sehen hier
mh-cbon

Antworten:

143

Verwendung --prefixhat bei mir funktioniert:

npm --prefix /path/to/project run build

Wo path/to/projectist das Verzeichnis, in dem Ihre package.json mit buildBefehl definiert ist.

Johnner
quelle
Das funktioniert meistens bei mir, aber ich kann nicht viel dokumentieren --prefix. Ich habe einen Weg wie /path/to-my-project/, und es scheint nicht zu funktionieren. Die anderen npm-Abhängigkeiten werden in andere Projektordner anstatt in den node_modulesOrdner verschoben. Gibt es eine Möglichkeit, diesen Argumenten zu entkommen? Ich habe versucht, einfache und doppelte Anführungszeichen ...
ps2goat
1
Dies hat in meinem Visual Studio-Ereignis "Pre-Build" hervorragend funktioniert. Es ist seltsam, dass ich keine --prefixOption in der NPM-Dokumentation gesehen habe.
Dance2die
prefixist keine Option, sondern eine Konfigurationseinstellung. Es ist auf der npm-foldersSeite ( docs.npmjs.com/files/folders )
dokumentiert