J'utilise un framework qui exécute npm
et webpack
automatiquement. Le répertoire /usr/lib/node_modules
dispose d'autorisations 755 qui nécessitent d'exécuter npm
à Sudo
. Le framework que j'utilise ne permet pas d'ajouter Sudo
à la commande.
Maintenant, je dois installer les packages npm sous une forme globale (par exemple, npm install webpack -g
) sans utiliser Sudo
.
Quelles autorisations seront OK pour /usr/lib/node_modules
? Si je définis les autorisations 777, cela sera-t-il correct et sécurisé?
Merci!
Vous n'avez pas besoin de modifier la permission de npm
pour pouvoir l'utiliser sans Sudo
. Pour configurer npm
afin qu'il s'exécute sans Sudo
, procédez comme suit:
Option 1:
Obtenir le chemin du répertoire npm:
npm config get prefix
Si vous avez /usr
, allez à l'option 2 , sinon changez le propriétaire des répertoires npm:
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'
Ouvrez ou créez ~/.profile
et ajoutez ceci:
export PATH=~/.npm-global/bin:$PATH
Ajoutez également ceci à votre fichier ~/.bashrc
(facultatif):
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
la source:
https://docs.npmjs.com/getting-started/fixing-npm-permissions