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
/usrbuka 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
~/.profiledan 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/