J'essaie d'exécuter une autre version de NodeJS avec nvm
mais j'obtiens cette erreur:
$ nvm use v4.2.4
nvm is not compatible with the npm config "prefix" option:
currently set to "/Users/z/.npm-global"
Run `npm config delete prefix` or `nvm use --delete-prefix v4.2.4` to unset it.
Mon préfixe est défini exprès pour éviter Sudo npm
(voir https://docs.npmjs.com/getting-started/fixing-npm-permissions ).
Puis-je utiliser nvm
sans perdre mon préfixe pour les packages installés globalement?
$ npm config delete prefix
$ npm config set prefix $NVM_DIR/versions/node/v6.11.1
Remarque: Modifiez le numéro de version avec celui indiqué dans le message d'erreur.
nvm n'est pas compatible avec l'option "préfixe" de npm config: actuellement définir sur "/ usr/local" Exécuter "npm config delete prefix" ou "nvm use --delete-prefix v6.11.1 --silent" pour le désactiver.
Crédits à @gabfiocchi sur Github - "Vous devez écraser le préfixe nvm"
J'ai eu le même problème et l'exécution de npm config delete prefix
ne m'a pas aidé.
Mais cela a:
Après avoir installé nvm avec brew, créez le répertoire ~/.nvm
:$ mkdir ~/.nvm
et ajoutez les lignes suivantes dans ~/.bash_profile
:
export NVM_DIR=~/.nvm
. $(brew --prefix nvm)/nvm.sh
(Vérifiez que vous n'avez aucune autre commande liée à nvm dans aucun ~/.bashrc
ou ~/.profile
ou ~/.bash_profile
)
Ouvrez un nouveau terminal et cette fois, il ne devrait pas imprimer de message d’avertissement.
Vérifiez que nvm fonctionne en exécutant la commande nvm --version
.
Après cela, installez/réinstallez NodeJS en utilisant nvm install node && nvm alias default node
.
Plus d'informations
J'ai installé nvm
en utilisant homebrew
et après cela, j'ai reçu cette notification:
Veuillez noter qu'en amont nous a demandé de rendre explicite la gestion nvm via Homebrew n’est pas pris en charge par ces derniers et vous devez cocher la case problèmes par rapport à la méthode d’installation standard nvm avant la génération de rapports.
Vous devriez créer le répertoire de travail de NVM s'il n'existe pas:
mkdir ~/.nvm
Ajoutez les éléments suivants à
~/.bash_profile
ou à votre shell souhaité fichier de configuration:export NVM_DIR=~/.nvm . $(brew --prefix nvm)/nvm.sh
Vous pouvez définir
$NVM_DIR
à n’importe quel emplacement, mais le laisser inchangé par rapport à/usr/local/Cellar/nvm/0.31.0
détruira toutes les installations de nœuds installées par nvm lors de la mise à niveau/réinstallation.
L'ignorer m'a amené à ce message d'erreur:
nvm
n'est pas compatible avec l'optionnpm config
"préfixe": actuellement définie sur"/usr/local/Cellar/nvm/0.31.0/versions/node/v5.7.1"
Exécuteznvm use --delete-prefix v5.7.1 --silent
pour le désélectionner.
J'ai suivi un guide précédent (à partir de homebrew/nvm
) et après cela, j'ai découvert que je devais réinstaller NodeJS. Alors j'ai fait:
nvm install node && nvm alias default node
et c'était réparé.
Update: L'utilisation de brew pour installer NVM ralentit le démarrage du terminal. Vous pouvez suivez cette instruction pour la résoudre.
Cela peut être un conflit avec votre installation locale de Node (si vous l'aviez déjà installée par un autre moyen que NVM). Vous devez supprimer cette instance de noeud:
Sudo rm -rf /usr/local/lib/node_modules
Sudo rm /usr/local/bin/node
cd /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm
Après avoir installé nvm
Je me suis heurté à cela en utilisant un noeud installé via nvm
, avec nvm
installé via homebrew. Je l'ai résolu en exécutant brew uninstall nvm
, rm -rf $NVM_DIR
, puis en réinstallant NVM à l'aide du script d'installation officiel et en réinstallant la version du noeud dont j'avais besoin.
Note: J'ai aussi eu $NVM_DIR
monté et lié symboliquement. Je l'ai remis dans mon homedir.
Cela pourrait être le problème si votre répertoire personnel est monté quelque part, car NVM ne fonctionne pas correctement avec les liens symboliques. Parce que je me fiche de l'endroit où se trouve mon $ NVM_DIR, je lance ceci et tout fonctionne correctement:
$ mv ~/.nvm /tmp/
$ export NVM_DIR="/tmp/.nvm"
$ nvm use --delete-prefix v6.9.1
J'ai eu le même problème et c'était vraiment énervant à chaque fois avec le terminal. Je lance la commande au terminal et tout a été corrigé
Pour ceux qui essaient de retirer le NVM de la bière
il se peut que cela ne soit pas suffisant pour lancer la désinstallation de nvm
si vous voyez que le préfixe npm est toujours/usr/local, exécutez cette commande
Sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}
Permettez-moi de décrire ma situation.
Tout d'abord, vérifiez la configuration actuelle
$ nvm use --delete-prefix v10.7.0
$ npm config list
Ensuite, j'ai trouvé l'erreur config dans la sortie:
; project config /mnt/c/Users/paul/.npmrc
prefix = "/mnt/c/Users/paul/C:\\Program Files\\nodejs"
J'ai donc supprimé le C:\\Program Files\\nodejs
dans /mnt/c/Users/paul/.npmrc.
J'ai juste une idée. Utilisez le lien symbolique pour résoudre l’erreur et vous pouvez toujours utiliser votre préfixe pour les packages installés globalement .
ln -s [your prefix path] [path in the '~/.nvm']
Alors vous aurez un dossier symbolique dans le dossier ~/.nvm
, mais en fait, vos packages globaux sont toujours installés dans [votre chemin de préfixe]. Ensuite, l'erreur ne s'affichera plus et vous pouvez utiliser nvm use **
normalement . Ps: cela fonctionne pour moi sur mac
. Pps: n'oubliez pas de définir $PATH
dans votre dossier npm bin
pour utiliser les packages installés globalement.
J'ai suivi https://stackoverflow.com/a/47861348/2391795 réponse mais cela n'a pas bien fonctionné.
$ npm config delete prefix
$ npm config set prefix $NVM_DIR/versions/node/v6.11.1
Après avoir exécuté les commandes recommandées, mon nvm ne fonctionnait plus, exécuter nvm use
afficherait la version de noeud appropriée, mais exécuter node -v
en afficherait une autre. Il n'était plus possible de changer la version du noeud.
J'ai désinstallé et réinstallé NVM entièrement pour le réparer. J'ai suivi https://github.com/creationix/nvm#manual-uninstall en cours d'exécution
$ rm -rf "$NVM_DIR"
Puis modifié mon .zshrc
pour supprimer les lignes relatives à nvm, qui dans mon cas étaient
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
Puis un nouveau shell a été démarré (afin que nvm ne soit pas chargé dans ce nouveau shell) et a lancé https://github.com/creationix/nvm#install-script
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
Qui a ajouté nvm les lignes que j'avais précédemment supprimées dans mon .zshrc
.
Ensuite, j'ai pu utiliser NVM comme je le faisais. Je suppose que c'est un cas étrange où les choses se sont mal passées et m'ont obligé à tout réinstaller, cela ne ressemble pas à la plupart des gens qui vivent cela à cause de ce problème.
J'ai eu ce problème après avoir déplacé mon dossier personnel sur un nouveau disque sous Linux. Il a été résolu en supprimant le dossier .nvm et en réinstallant nvm.
Juste résolu le problème. J'ai lié symboliquement $HOME/.nvm
au répertoire $DEV_ZONE/env/node/nvm
. Je faisais face au même problème. J'ai remplacé NVM_DIR
dans $HOME/.zshrc
comme suit
export NVM_DIR="$DEV_ZONE/env/node/nvm"
BTW, installez NVM à l’aide des commandes curl
ou wget
et non pas de brew
. Pour plus d’informations, consultez le commentaire de ce numéro sur Github: 855 # issuecomment-146115434
Je cherchais une solution au problème de préfixe nvm et a trouvé cette question (avant de trouver la solution). Voici mon "dialogue" Shell. J'espère que cela peut être utile pour quelqu'un. J'ai pu configurer préfixe avec l'aide de ce post: https://github.com/npm/npm/issues/6592
Quand j'ai essayé npm config delete prefix
ou nvm use --delete-prefix
avant d'utiliser npm --prefix="" set prefix ""
, je n'ai eu que: Npm ERR! pas ok code 0
Notez que vous devrez répéter la même procédure avec chaque version de noeud. Le préfixe est défini sur (dans mon cas)/usr/local après l'installation.
$ nvm install 0.10
######################################################################## 100.0%
nvm is not compatible with the npm config "prefix" option: currently set to "/usr/local"
Run `npm config delete prefix` or `nvm use --delete-prefix v0.10.44` to unset it.
$ npm --prefix="" set prefix ""
$ nvm use 0.10.44
nvm is not compatible with the npm config "prefix" option: currently set to "/home/john"
Run `npm config delete prefix` or `nvm use --delete-prefix v0.10.44` to unset it.
$ nvm use --delete-prefix v0.10.44
Now using node v0.10.44 (npm v1.3.10)
$ nvm ls
v0.10.44
v4.4.3
-> system
default -> 4.4.3 (-> v4.4.3)
node -> stable (-> v4.4.3) (default)
stable -> 4.4 (-> v4.4.3) (default)
iojs -> N/A (default)
$ npm config get prefix
/usr/local