Jawaban:
Anda dapat menggunakan --prefix
opsi ini:
mkdir -p ./install/here/node_modules
npm install --prefix ./install/here <package>
Paket kemudian akan diinstal di ./install/here/node_modules
. The mkdir
diperlukan karena NPM mungkin sebaliknya memilih yang sudah ada node_modules
direktori lebih tinggi dalam hirarki. (Lihat dokumentasi npm di folder .)
npm install
(tanpa nama paket)? Saya menghubungkan ini secara langsung, tetapi kemudian npm mencari package.json
di {prefix}
. Apa yang saya juga bertujuan adalah untuk dapat membiarkan packages.json
dalam proyek root dan pada saat yang sama menginstal semua paket {project root}/{project webroot}
.
npm install
, tetapi --prefix
sepertinya 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_modules
folder ke folder
<path/to/prefix_folder>/lib/node_modules
require
menginstal 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_modules
folder bahkan ketika node_modules
direktori sudah ada di hierarki yang lebih tinggi. Anda juga dapat memiliki package.json
di direktori saat ini dan kemudian menginstalnya di direktori yang ditentukan menggunakan --prefix
opsi:
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 --prefix
opsi. Ini menyelesaikan sesuai dokumentasi npm pada folder , hanya ketika npm install
digunakan tanpa --prefix
opsi.
Can't install <current directory>: Missing package name
package.json
file./install/here