J'utilise un framework qui exécute npm
et webpack
automatiquement, le répertoire /usr/lib/node_modules
avoir 755 autorisations qui nécessitent d'exécuter npm
via sudo
. Le framework que j'utilise ne permet pas d'ajouter sudo
à la commande.
Maintenant, je dois installer les packages npm sous forme globale (par exemple, npm install webpack -g
) sans utiliser sudo
.
Quelles autorisations seront OK pour /usr/lib/node_modules
? Si je définis 777 autorisations, est-ce que ce sera OK et sécurisé ?
Merci !
Réponse acceptée :
Vous n'avez pas besoin de modifier l'autorisation de npm
pour pouvoir l'utiliser sans sudo
. POUR configurer npm
pour fonctionner sans sudo
suivez ces étapes :
Option 1 :
-
Obtenir le chemin du répertoire npm :
npm config get prefix
-
Si vous avez
/usr
passez à l'option 2 sinon changez le propriétaire des répertoires npm pour le vôtre :sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
Option 2 :
-
Créer un répertoire pour les installations globales :
mkdir ~/.npm-global
-
Configurez pour utiliser ce répertoire :
npm config set prefix '~/.npm-global'
-
Ouvrir ou créer
~/.profile
et ajoutez ceci :export PATH=~/.npm-global/bin:$PATH
-
Ajoutez ceci également à votre
~/.bashrc
fichier (optionnel) :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
-
Actualisez les fichiers :
source ~/.bashrc
-
Testez en exécutant :
npm install -g jshint
sources :
https://docs.npmjs.com/getting-started/fixing-npm-permissions
http://www.competa.com/blog/how-to-run-npm-without-sudo/