Apakah mungkin untuk menentukan tujuan paket khusus untuk npm install
, baik melalui bendera perintah atau variabel lingkungan?
Secara default, instalasi npm lokal berakhir di node_modules
dalam direktori saat ini, tetapi saya ingin menginstalnya ke node_modules
dalam direktori yang berbeda, misalnya vendor/node_modules
. Bagaimana saya bisa mewujudkannya?
./node_modules
, saya ingin npm menginstalnya ke dalam subdirektori dari./vendor/node_modules
. (Atau diberi tahu bahwa itu tidak dapat dikonfigurasi.)require
d) tetapi saya tidak ingin menginstalnya secara global.Jawaban:
TL; DR
Anda dapat melakukan ini dengan menggunakan
--prefix
flag dan--global
* flag.* Walaupun ini adalah instalasi "global", nampan yang dipasang tidak akan dapat diakses melalui baris perintah kecuali
~/foo/vendor/node_modules
ada diPATH
.TL; R
Setiap atribut yang
npm
dapat dikonfigurasi dapat diatur di salah satu dari enam tempat berbeda. Dalam urutan prioritas:--prefix ./vendor/node_modules
NPM_CONFIG_PREFIX=./vendor/node_modules
$HOME/.npmrc
atauuserconfig
param$PREFIX/etc/npmrc
atauuserconfig
parampath/to/npm/itself/npmrc
Secara default, paket yang diinstal secara lokal masuk ke
./node_modules
. global yang masuk keprefix
variabel config (/usr/local
secara default).Anda dapat menjalankan
npm config list
untuk melihat konfigurasi Anda saat ini dannpm config edit
mengubahnya.PS
Secara umum,
npm
dokumentasi sangat membantu. Bagian folder adalah gambaran struktural yang bagus dari npm dan bagian konfigurasi menjawab pertanyaan ini.sumber
./vendor/node_modules/lib/bower
menggunakannpm#3.8.0
No version provided in package.json
bins won't be accessible through the command line
. Program ini tentu saja dapat dipanggil menggunakan path lengkapnpm install [email protected] -g --prefix c:\my_npm` calling
c: \ my_npm \ eslint --fix my.js`npm install
di direktori A dengan file package.json, paket akan diinstal di direktori B. Tampaknya solusi ini adalah untuk paket individual yang diinstal.npm install
menginstal dependensi secara lokal.npm install X -g -prefix "..."
menginstal modul X ke awalan,npm install -g -prefix "..."
menginstal paket saat ini ke awalan.Jika Anda menginginkan ini dalam konfigurasi, Anda dapat mengatur konfigurasi npm seperti:
atau
Periksa konfigurasi Anda dengan
npm config ls -l
Atau seperti @pje katakan dan gunakan
--prefix
benderasumber
npm install
masih akan menginstal secara lokal ke./node_modules
tetapinpm install -g
akan menginstal ke"$(pwd)/vendor/node_modules"
. Saya bisa membayangkan pengaturan ini kemudian melupakannya, kembali lagi bertanya-tanya mengapa paket global saya bertindak aneh.Untuk OSX, Anda dapat pergi ke pengguna Anda
$HOME
(mungkin / Users / yourname /) dan, jika belum ada, buat.npmrc
file (file yang digunakan npm untuk konfigurasi pengguna), dan buat direktori untuk paket npm Anda untuk dipasang di (misalnya, / Pengguna / namamu / npm). Dalam file .npmrc itu, setel "prefix" ke direktori npm baru Anda, yang akan menjadi tempat "npmrc" paket-paket yang diinstal secara global akan diinstal; paket-paket "global" ini, tentu saja, hanya akan tersedia untuk akun pengguna Anda.Dalam .npmrc:
prefix=${HOME}/npm
Kemudian jalankan perintah ini dari baris perintah:
npm config ls -l
Seharusnya memberikan output pada konfigurasi lokal Anda sendiri dan konfigurasi global npm, dan Anda akan melihat konfigurasi awalan lokal Anda tercermin, mungkin di dekat bagian atas daftar panjang output.
Demi keamanan, saya merekomendasikan pendekatan ini untuk mengonfigurasi perilaku npm akun pengguna Anda daripada meng-chown-ing
/usr/local
folder Anda , yang saya lihat direkomendasikan di tempat lain.sumber
Pada Windows 7 misalnya, serangkaian perintah / operasi berikut dapat digunakan.
Buat variabel lingkungan pribadi, backslash ganda wajib:
%NPM_HOME%
C:\\SomeFolder\\SubFolder\\
Sekarang, atur nilai konfigurasi ke folder baru (nama file contoh):
npm config set prefix "%NPM_HOME%\\npm"
npm config set cache "%NPM_HOME%\\npm-cache"
npm config set tmp "%NPM_HOME%\\temp"
Secara opsional, Anda dapat membersihkan konten dari folder asli sebelum konfigurasi diubah.
Hapus npm-cache
npm cache clear
Daftar modul npm
npm -g ls
Hapus modul npm
npm -g rm name_of_package1 name_of_package2
sumber
Setelah mencari sendiri ini menginginkan beberapa proyek dengan dependensi yang dibagikan menjadi KERING, saya menemukan:
require()
require()
bin
danman
$PATH
npm link
( info ) memungkinkan Anda menggunakan instalasi lokal sebagai sumber untuk global→ tetap pada cara Node dan instal secara lokal
ref:
sumber