web-dev-qa-db-fra.com

Les modules Node ont 755 autorisations. Quelles autorisations dois-je définir pour que npm ne nécessite pas sudo?

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!

3
Indu Pillai

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:

  1. Obtenir le chemin du répertoire npm:

    npm config get prefix
    
  2. 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:

  1. Créer un répertoire pour les installations globales:

    mkdir ~/.npm-global
    
  2. Configurez pour utiliser ce répertoire:

    npm config set prefix '~/.npm-global'
    
  3. Ouvrez ou créez ~/.profile et ajoutez ceci:

    export PATH=~/.npm-global/bin:$PATH
    
  4. 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
    
  5. Actualisez les fichiers:

    source ~/.bashrc
    
  6. Testez en exécutant:

    npm install -g jshint
    

la source:

https://docs.npmjs.com/getting-started/fixing-npm-permissions

http://www.competa.com/blog/how-to-run-npm-without-Sudo/

9
George Udosen