npm - zainstalować zależności dla pakietu w innym folderze?


142

Mam następującą strukturę katalogów:

/some_project
    source.js
    package.json

Chciałbym zainstalować zależności dla some_project. Wiem, że mogę cd do some_project, a następnie uruchomić instalację npm

Ale zastanawiałem się, czy to możliwe bez zmiany katalogu? Coś jak

npm install some_project/package.json 

Odpowiedzi:


344

Możesz użyć npm install <folder>wariantu z --prefixopcją. W twoim scenariuszu folder i prefiks będą takie same:

npm --prefix ./some_project install ./some_project

4
To jest prawdziwa odpowiedź na to pytanie. Dziękuję @coudy.
G. Ghez

5
BTW, tworzy pusty etcfolder w miejscu docelowym, to znany błąd github.com/npm/npm/pull/7249
Michael

8
Dzięki za tę odpowiedź. Czy jest więcej jasności co do tego, czy druga ./some_projectjest wymagana?
Aron

12
druga ./some_projectnie jest wymagana
JRJurman

4
Wydaje się, że to nie działa dla mnie w systemie Windows 10. Instaluje zależności w bieżącym katalogu i po prostu umieszcza łącze symboliczne w podfolderze.
Herohtar

45

Aktualizacja: ponieważ --prefixopcja istnieje, głosuję teraz na odpowiedź @ coudy na to pytanie. Oryginalna odpowiedź poniżej:

Nie, npmzawsze instaluje się w bieżącym katalogu lub -gw systemowych modułach node_modules. Możesz to jednak osiągnąć za pomocą podpowłoki, która nie wpłynie na twój bieżący katalog:

(cd some_project && npm install)

Nawiasy powodują, że działa w podpowłoce .


Ostatecznie to właśnie zrobiłem - cd some_project && npm install. Dzięki
Florin

1
Czy istnieje odpowiednik tego dla systemu Windows?
Meligy

@Meligy, którego możesz użyćSTART /D "%my_dir%" /I /WAIT npm install
Everspace

1

W systemie Windows 10 nie mogłem zabrać się --prefixdo pracy, więc musiałem to zrobić cdi wykonać.

cd PATH_TO_FOLDER && npm install 
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.