npm - Abhängigkeiten für ein Paket in einem anderen Ordner installieren?


142

Ich habe folgende Verzeichnisstruktur:

/some_project
    source.js
    package.json

Ich möchte die Abhängigkeiten für some_project installieren. Ich weiß, ich könnte in some_project cd und dann npm install ausführen

Aber ich habe mich gefragt, ob es möglich ist, ohne das Verzeichnis zu ändern? Etwas wie

npm install some_project/package.json 

Antworten:


344

Sie können die npm install <folder>Variante mit der --prefixOption verwenden. In Ihrem Szenario sind Ordner und Präfix identisch:

npm --prefix ./some_project install ./some_project

4
Dies ist die eigentliche Antwort auf die Frage. Vielen Dank, dass Sie @coudy.
G. Ghez

5
Übrigens, es erstellt einen leeren etcOrdner im Ziel, es ist ein bekannter Fehler github.com/npm/npm/pull/7249
Michael Radionov

8
Danke für diese Antwort. Gibt es mehr Klarheit darüber, ob die zweite ./some_projecterforderlich ist?
Aron

12
der zweite ./some_projectist nicht erforderlich
JRJurman

4
Dies scheint unter Windows 10 bei mir nicht zu funktionieren. Es installiert die Abhängigkeiten im aktuellen Verzeichnis und fügt lediglich einen Symlink in den Unterordner ein.
Herohtar

45

Update: Da die --prefixOption existiert, stimme ich jetzt für die Antwort von @ coudy auf diese Frage. Ursprüngliche Antwort unten:

Nein, npmwird immer im aktuellen Verzeichnis oder mit -gin den systemweiten node_modules installiert. Sie können dies jedoch mit einer Subshell erreichen, die sich nicht auf Ihr aktuelles Verzeichnis auswirkt:

(cd some_project && npm install)

Durch die Klammern wird es in einer Unterschale ausgeführt .


Dies ist schließlich, was ich getan habe - cd some_project && npm install. Vielen Dank
Florin

1
Gibt es ein Äquivalent dazu für Windows?
Meligy

@Meligy können Sie verwendenSTART /D "%my_dir%" /I /WAIT npm install
Everspace

1

Unter Windows 10 konnte ich nicht --prefixarbeiten, also musste ich es cdausführen.

cd PATH_TO_FOLDER && npm install 
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.