J'essaie d'installer LESS sur ma machine et j'ai déjà installé le noeud. Cependant, lorsque j'entre "node install -g less", l'erreur suivante s'affiche et je ne sais pas quoi faire.
FPaulMAC:bin paul$ npm install -g less
npm ERR! Error: EACCES, unlink '/usr/local/lib/node_modules/less'
npm ERR! { [Error: EACCES, unlink '/usr/local/lib/node_modules/less']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path: '/usr/local/lib/node_modules/less' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! System Darwin 13.3.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "less"
npm ERR! cwd /usr/local/bin
npm ERR! node -v v0.10.33
npm ERR! npm -v 1.4.28
npm ERR! path /usr/local/lib/node_modules/less
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, unlink '/usr/local/lib/node_modules/less'
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/less'
npm ERR! error rolling back { [Error: EACCES, unlink '/usr/local/lib/node_modules/less']
npm ERR! error rolling back errno: 3,
npm ERR! error rolling back code: 'EACCES',
npm ERR! error rolling back path: '/usr/local/lib/node_modules/less' }
npm ERR! not ok code 0
Re Explosion Pills "Une installation peut exécuter des scripts arbitraires et l'exécuter avec Sudo peut être extrêmement dangereux!"
On dirait que l'utilisation de Sudo est la mauvaise façon de le faire.
"Changez le propriétaire des fichiers de votre dossier/usr/local en utilisateur actuel:"
Sudo chown -R $USER /usr/local
Puis lancez l'installation
node install -g less
Check-out:
Honnêtement, c’est un mauvais conseil de npm
. Une installation peut exécuter des scripts arbitraires et l'exécuter avec Sudo
peut être extrêmement dangereux! Vous pourriez faire Sudo npm install -g less
pour l’installer globalement, mais au lieu de cela, je vous recommande de mettre à jour vos paramètres npm:
#~/.npmrc
prefix=~/.npm_modules
Ensuite, vous pouvez mettre à jour votre chemin:
#~/.bashrc or ~/.zshrc, etc.
export PATH=$PATH:$HOME/.npm_modules/bin
Ensuite, vous n'avez pas besoin d'autorisations root pour effectuer l'installation et vous pouvez toujours utiliser le binaire.
Cela ne s'appliquerait cependant qu'à votre utilisateur. Si vous voulez que l'ensemble du système puisse utiliser le module, vous devez dire à tout le monde d'ajouter votre chemin. Des solutions plus complexes et plus robustes incluraient l'ajout d'un dossier avec des modules de nœud/fichiers binaires qu'un groupe pourrait installer et l'ajout de that au chemin de chacun.
Pré-ajoutez simplement Sudo
au début de votre commande . Comme indiqué précédemment, une installation exécute des scripts qui peuvent être dangereux, mais j'ai constaté que l'installation globale aide beaucoup et est beaucoup plus simple.
Exécuter Sudo npm install -g less
Voici ce que je devais faire pour utiliser un compilateur Less afin d'éviter les problèmes mentionnés dans le PO:
Sudo npm install npm -g
Sudo npm install -g less
(le Sudo fait toute la différence)/usr/local/bin/lessc
Dans mon cas, je devais mettre à jour la version de npm de 5.3.0 → 5.4.2.
Avant de pouvoir utiliser ce -- npm i -g npm
.. je devais exécuter deux commandes qui résolvaient parfaitement mon problème. Il est fort probable que cela résoudra même votre problème.
Étape 1: Sudo chown -R $USER /usr/local
Étape 2: npm install -g cordova ionic
Après cela, vous devriez mettre à jour votre npm avec la dernière version.
Étape 3: npm i -g npm
Alors tu peux y aller. Hope Cela résout votre problème .
npm a une page officielle sur résolution des autorisations npm lorsque vous obtenez l'erreur EACCES (Erreur: Accès). La page a même une vidéo.
Vous pouvez résoudre ce problème en utilisant l'une des deux options suivantes:
- Changez l'autorisation dans le répertoire par défaut de npm.
- Remplacez le répertoire par défaut de npm par un autre répertoire.
J'ai aussi le problème. C'est ce que j'ai fait:
Maintenant, allez sur le site nodeJS et réinstallez-le. Sélectionnez la 2e option dans l’option d’installation (c’est-à-dire le paquet npm). Installez-le. Votre problème doit être résolu maintenant.
Je sais que c'est une vieille question, mais aucune des solutions ne semblait être une bonne pratique, c'est pourquoi je vous explique comment j'ai résolu ce problème:
J'ai essayé de résoudre ce problème en utilisant Homebrew mais il installait également le noeud dans /usr/local directory
, ce qui provoquerait à nouveau une erreur EACCES
.
Je devais utiliser un gestionnaire de version tel que nvm pour plus d’informations, voir le guide officiel npm .
Pour divers système d'exploitation .
nvm installe le noeud et ses modules dans le dossier HOME FOLDER de l'utilisateur, ce qui résout les problèmes de EACCES
.