J'ai donc fait une nouvelle installation de npm/node sur ma machine locale en utilisant NVM en utilisant l'utilisateur root et tout semble bien, maintenant mon problème est quand j'ai essayé d'installer en utilisant npm install --unsafe-perm -verbose La commande sur mon dossier de projet affiche une erreur dans mon terminal.
npm verb stack Error: Command failed: /usr/bin/git clone --depth=1 -q -b 0.0.7 https://github.com/Mango/emitter.git /root/.npm/_cacache/tmp/git-clone-28a98ad9
npm verb stack fatal: could not create leading directories of '/root/.npm/_cacache/tmp/git-clone-28a98ad9': Permission denied
npm verb stack
npm verb stack at ChildProcess.exithandler (child_process.js:282:12)
npm verb stack at ChildProcess.emit (events.js:182:13)
npm verb stack at maybeClose (internal/child_process.js:957:16)
npm verb stack at Socket.stream.socket.on (internal/child_process.js:378:11)
npm verb stack at Socket.emit (events.js:182:13)
npm verb stack at Pipe._handle.close [as _onclose] (net.js:598:12)
npm verb cwd /web/nbltv
npm verb Linux 4.15.0-29-generic
npm verb argv "/root/.nvm/versions/node/v10.1.0/bin/node" "/root/.nvm/versions/node/v10.1.0/bin/npm" "install" "--unsafe-per" "-verbose"
npm verb node v10.1.0
npm verb npm v5.6.0
npm ERR! code 128
npm ERR! Command failed: /usr/bin/git clone --depth=1 -q -b 0.0.7 https://github.com/Mango/emitter.git /root/.npm/_cacache/tmp/git-clone-28a98ad9
npm ERR! fatal: could not create leading directories of '/root/.npm/_cacache/tmp/git-clone-28a98ad9': Permission denied
npm ERR!
npm verb exit [ 1, true ]
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-08-20T01_36_33_496Z-debug.log
version NPM - 5.6 version NODE - 10.1
Toute aide serait très appréciée. Merci!
Montrez votre node_modules et ne vous exécutez pas en tant que Sudo.
Vous devriez toujours avoir la propriété du répertoire .npm
Car NPM refusera d'installer des modules natifs avec Sudo car c'est un risque de sécurité par exemple.
Essayez Sudo chown -R $(whoami) ~/.npm
et voyez si cela fonctionnerait.
Ou réinstaller avec un gestionnaire de version de noeud sans root comme recommandé dans le docs :
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
La création d'un nouveau stockage global dans votre espace utilisateur est le moyen recommandé pour éviter cette erreur. N'utilisez pas Sudo et ne changez pas la propriété des emplacements.
$ mkdir ~/.npm-global
$ npm config set prefix '~/.npm-global'
$ export PATH=~/.npm-global/bin:$PATH
$ source ~/.profile
Cependant, puisque vous utilisez npm 5.6, cela pourrait être plus pertinent pour vous:
npx: une alternative à l'exécution de commandes globales
Si vous utilisez npm version 5.2 ou supérieure, vous souhaiterez peut-être considérer npx comme un moyen alternatif d'exécuter des commandes globales, surtout si vous n'avez besoin que d'une commande occasionnellement. Pour plus d'informations, consultez cet article sur npx .
Source: https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally