npm - instal dependensi untuk paket di folder yang berbeda?


142

Saya memiliki struktur direktori berikut:

/some_project
    source.js
    package.json

Saya ingin menginstal dependensi untuk some_project. Saya tahu saya bisa melakukan cd ke some_project dan menjalankan npm install

Tapi saya bertanya-tanya apakah mungkin tanpa mengubah direktori? Sesuatu seperti

npm install some_project/package.json 

Jawaban:


344

Anda dapat menggunakan npm install <folder>varian dengan --prefixopsi. Dalam skenario Anda, folder dan awalannya akan sama:

npm --prefix ./some_project install ./some_project

4
Ini adalah jawaban nyata untuk pertanyaan itu. @Coudy terima kasih
G. Ghez

5
BTW, itu membuat etcfolder kosong di tujuan, itu adalah bug yang dikenal github.com/npm/npm/pull/7249
Michael Radionov

8
Terima kasih atas jawaban ini. Apakah ada kejelasan lebih lanjut tentang apakah yang kedua ./some_projectdiperlukan?
Aron

12
yang kedua ./some_projecttidak diperlukan
JRJurman

4
Ini sepertinya tidak berfungsi untuk saya di Windows 10. Ini menginstal dependensi di direktori saat ini dan hanya menempatkan symlink di subfolder.
Herohtar

45

Pembaruan: Karena --prefixada opsi, saya sekarang memilih jawaban @ coudy untuk pertanyaan ini. Jawaban asli di bawah:

Tidak, npmakan selalu menginstal di direktori saat ini atau, dengan -g, di sistem node_modules. Anda dapat melakukan ini dengan subkulit, yang tidak akan memengaruhi direktori Anda saat ini:

(cd some_project && npm install)

Tanda kurung membuatnya berjalan dalam subkulit .


Inilah yang akhirnya saya lakukan - cd some_project && npm install. Terima kasih
Florin

1
Apakah ada yang setara dengan ini untuk Windows?
Meligy

@Eligy bisa Anda gunakanSTART /D "%my_dir%" /I /WAIT npm install
Everspace

1

Pada Windows 10 saya tidak bisa mulai --prefixbekerja, jadi saya harus melakukannya cddan menjalankannya.

cd PATH_TO_FOLDER && npm install 
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.