Saya menggunakan kerangka kerja yang menjalankan npm
dan webpack
secara otomatis, direktori /usr/lib/node_modules
memiliki 755 izin yang mengharuskan untuk menjalankan npm
melalui sudo
. Kerangka kerja yang saya gunakan tidak mengizinkan penambahan sudo
untuk perintah.
Sekarang saya perlu menginstal paket npm dalam bentuk global (mis., npm install webpack -g
) tanpa menggunakan sudo
.
Izin apa yang cocok untuk /usr/lib/node_modules
? Jika saya menyetel 777 izin, apakah itu akan baik-baik saja dan aman?
Terima kasih!
Jawaban yang Diterima:
Anda tidak perlu mengubah izin dari npm
untuk dapat menggunakannya tanpa sudo
. UNTUK menyiapkan npm
untuk dijalankan tanpa sudo
ikuti langkah-langkah berikut:
Opsi 1:
-
Dapatkan jalur direktori npm:
npm config get prefix
-
Jika Anda mendapatkan
/usr
buka opsi 2 jika tidak, ubah pemilik direktori npm menjadi milik Anda:sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
Opsi 2:
-
Buat direktori untuk instalasi global:
mkdir ~/.npm-global
-
Konfigurasi untuk menggunakan direktori itu:
npm config set prefix '~/.npm-global'
-
Buka atau buat
~/.profile
dan tambahkan ini:export PATH=~/.npm-global/bin:$PATH
-
Tambahkan ini juga ke
~/.bashrc
. Anda file (opsional) :export PATH=/home/username/.npm-global/bin:$PATH export NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript:/home/username/.npm-global/lib/node_modules
-
Segarkan file:
source ~/.bashrc
-
Uji dengan menjalankan:
npm install -g jshint
sumber:
https://docs.npmjs.com/getting-started/fixing-npm-permissions
http://www.competa.com/blog/how-to-run-npm-without-sudo/