Sto usando un framework che esegue npm
e webpack
automaticamente, la directory /usr/lib/node_modules
dispone di 755 autorizzazioni che richiedono l'esecuzione di npm
tramite sudo
. Il framework che utilizzo non consente di aggiungere sudo
al comando.
Ora ho bisogno di installare i pacchetti npm in forma globale (ad esempio, npm install webpack -g
) senza usare sudo
.
Quali permessi andranno bene per /usr/lib/node_modules
? Se imposto i permessi 777 sarà OK e sicuro?
Grazie!
Risposta accettata:
Non è necessario modificare l'autorizzazione di npm
per poterlo usare senza sudo
. PER impostare npm
da eseguire senza sudo
segui questi passaggi:
Opzione 1:
-
Ottieni il percorso della directory npm:
npm config get prefix
-
Se hai
/usr
vai all'opzione 2 altrimenti cambia il proprietario delle directory npm nella tua:sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
Opzione 2:
-
Crea directory per installazioni globali:
mkdir ~/.npm-global
-
Configura per utilizzare quella directory:
npm config set prefix '~/.npm-global'
-
Apri o crea
~/.profile
e aggiungi questo:export PATH=~/.npm-global/bin:$PATH
-
Aggiungi questo anche al tuo
~/.bashrc
file (facoltativo) :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
-
Aggiorna i file:
source ~/.bashrc
-
Prova eseguendo:
npm install -g jshint
fonte:
https://docs.npmjs.com/getting-started/fixing-npm-permissions
http://www.competa.com/blog/how-to-run-npm-without-sudo/