Jawaban:
Anda dapat menggunakan --prefixopsi ini:
mkdir -p ./install/here/node_modules
npm install --prefix ./install/here <package>
Paket kemudian akan diinstal di ./install/here/node_modules. The mkdirdiperlukan karena NPM mungkin sebaliknya memilih yang sudah ada node_modulesdirektori lebih tinggi dalam hirarki. (Lihat dokumentasi npm di folder .)
npm install(tanpa nama paket)? Saya menghubungkan ini secara langsung, tetapi kemudian npm mencari package.jsondi {prefix}. Apa yang saya juga bertujuan adalah untuk dapat membiarkan packages.jsondalam proyek root dan pada saat yang sama menginstal semua paket {project root}/{project webroot}.
npm install, tetapi --prefixsepertinya solusi yang lebih baik, jika tidak menyebabkan rekursi.
Dalam dokumentasi itu dinyatakan: Gunakan opsi awalan bersama dengan opsi global :
The awalan konfigurasi default untuk lokasi di mana simpul diinstal. Pada kebanyakan sistem, ini adalah / usr / local . Di windows, ini adalah lokasi yang tepat dari biner node.exe. Pada sistem Unix, ini satu tingkat naik, karena simpul biasanya dipasang di {awalan} / bin / simpul daripada {awalan} /node.exe .
Ketika flag global diatur, npm menginstal sesuatu ke dalam awalan ini. Ketika tidak disetel, ia menggunakan root dari paket saat ini, atau direktori kerja saat ini jika belum ada dalam paket.
(Penekanan oleh mereka)
Jadi di direktori root Anda, Anda dapat menginstal
npm install --prefix <path/to/prefix_folder> -g
dan itu akan menginstal node_modulesfolder ke folder
<path/to/prefix_folder>/lib/node_modules
requiremenginstal paket secara global, bukan?
Pada npm versi 3.8.6, Anda dapat menggunakan
npm install --prefix ./install/here <package>
untuk menginstal di direktori yang ditentukan. NPM secara otomatis membuat node_modulesfolder bahkan ketika node_modulesdirektori sudah ada di hierarki yang lebih tinggi. Anda juga dapat memiliki package.jsondi direktori saat ini dan kemudian menginstalnya di direktori yang ditentukan menggunakan --prefixopsi:
npm install --prefix ./install/here
Pada npm 6.0.0, Anda dapat menggunakan
npm install --prefix ./install/here ./
untuk menginstal package.json di direktori saat ini ke direktori "./install/here". Ada satu hal yang saya perhatikan pada Mac yang membuat symlink ke folder induk di dalam direktori node_modules. Tapi, masih berfungsi.
CATATAN: NPM menghormati jalur yang telah Anda tentukan melalui --prefixopsi. Ini menyelesaikan sesuai dokumentasi npm pada folder , hanya ketika npm installdigunakan tanpa --prefixopsi.
Can't install <current directory>: Missing package name
package.jsonfile./install/here