web-dev-qa-db-fra.com

npm install -g less ne fonctionne pas

J'essaie de mettre en place moins de phpstorm pour pouvoir compiler des fichiers .less en .css lors de l'enregistrement. J'ai installé node.js et la prochaine étape (selon ceci https://www.jetbrains.com/webstorm/help/transpiling-sass-less-and-scss-to-css.html ) exécute cette commande dans le terminal

npm install -g less

Cependant, lorsque je fais cela, je reçois ces erreurs

☁  ~  npm install -g less
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/mkdirp/0.5.1'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/graceful-fs/3.0.8'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/extend/3.0.0'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/readable-stream/2.0.4'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/chalk/1.1.1'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/xtend/4.0.1'
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
/usr/local/lib
└─┬ [email protected]
  ├─┬ [email protected]
  │ └── [email protected]
  ├── [email protected]
  ├── [email protected]
  ├─┬ [email protected]
  │ └── [email protected]
  └─┬ [email protected]
    └── [email protected]

npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "less"
npm ERR! node v5.0.0
npm ERR! npm  v3.3.6
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access

npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/brentscholl/npm-debug.log

Je suis un noob complet ici et je ne sais pas quoi faire ensuite. Toute aide serait très appréciée!

140
xslibx

L'utilisation de Sudo n'est pas recommandée. Il peut vous donner problème de permission plus tard. Bien que ce qui précède fonctionne, je ne suis pas partisan de modifier les dossiers appartenant à root pour qu’ils soient accessibles en écriture pour les utilisateurs, bien que ce ne soit peut-être un problème que pour plusieurs utilisateurs. Pour contourner ce problème, vous pouvez utiliser un groupe, avec "utilisateurs npm", mais cela représente également une charge administrative supplémentaire. Voir ici pour les options de gestion des autorisations de la documentation: https://docs.npmjs.com/getting-started/fixing-npm-permissions

Je choisirais l'option 2:

Pour minimiser les risques d'erreur liés aux autorisations, vous pouvez configurer npm pour utiliser un autre répertoire. Dans cet exemple, ce sera un répertoire caché sur votre dossier personnel.

Créez un répertoire pour les installations globales:

 mkdir ~/.npm-global

Configurez npm pour utiliser le nouveau chemin de répertoire:

 npm config set prefix '~/.npm-global'

Ouvrez ou créez un fichier ~/.profile et ajoutez cette ligne:

 export PATH=~/.npm-global/bin:$PATH

De retour sur la ligne de commande, mettez à jour vos variables système:

 source ~/.profile

Test: Téléchargez un package globalement sans utiliser Sudo.

npm install -g jshint

Si toujours afficher une erreur d'autorisation exécutée (mac os):

Sudo chown -R $USER ~/.npm-global   

Cela fonctionne avec l'installation par défaut d'ubuntu:

Sudo apt-get install nodejs npm

Je recommande nvm si vous souhaitez plus de flexibilité dans la gestion des versions: https://github.com/creationix/nvm

Sous MacOS, utilisez infusé, cela devrait fonctionner sans Sudo prête à l'emploi si vous utilisez une version récente npm. Prendre plaisir :)

236
Vincent Gerris

Exécutez ces commandes dans une fenêtre de terminal (note: NE remplacez PAS la partie $ USER ... c’est une commande linux pour obtenir votre utilisateur!):

Sudo chown -R $USER ~/.npm
Sudo chown -R $USER /usr/lib/node_modules
Sudo chown -R $USER /usr/local/lib/node_modules
87
Vagner Rodrigues

Réinstallez le noeud et npm avec gestionnaire de version de noeud (comme écrit dans la documentation npm ) pour éviter les erreurs d'autorisation:

Sous OSX:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

ou suivez cet article:

http://dev.topheman.com/install-nvm-with-homebrew-to-use-multiple-versions-of-node-and-iojs-easily/

Les utilisateurs de Windows doivent installer nvm-windows . Pour plus d’informations sur l’installation de nvm, reportez-vous au nvm readme .

Puis choisissez par exemple:

nvm install 8.0.0
nvm use 8.0

Maintenant, vous pouvez faire un autre essai:

npm install -g less
11
gazdagergo

Réponse de Mac OS X

Vous n'avez pas d'accès en écriture au répertoire node_modules

npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules

Ajouter votre utilisateur au répertoire avec accès en écriture

  1. Ouvrir le dossier contenant node_modules

    ouvrir/usr/local/lib /

  2. Faites un cmd + I sur le dossier node_modules pour ouvrir la boîte de dialogue d'autorisation
  3. Ajoutez votre utilisateur pour avoir un accès en lecture et en écriture dans la section partage et autorisations enter image description here
8
Roderick Jonsson

Utilisez Sudo -i pour passer à $ root, puis exécutez npm install -g xxxx

5
user3393929