J'ai eu le même problème d'être incapable de garder ma version de nœud spécifiée par nvm dans mon environnement OS X non seulement avec VSCode mais aussi avec Atom Editor (en utilisant le paquet platformio-ide-terminal pour gérer le terminal intégré dans celui-ci). Aucune des suggestions dans les réponses précédentes n'a fonctionné pour moi, en plus de ne pas utiliser le débogueur mais d'utiliser gulp et grunt pour des tâches spécifiques. Apparemment, nvm ne s'entend pas avec les terminaux intégrés ou les sub shells, du moins dans ces éditeurs, car lors de leur chargement, la variable d'environnement $PATH est modifiée en interne et fait ce qui suit selon un commentaire de l'un des contributeurs de ce paquet dans ce problème rapporté ici NVM ne parvient pas à se charger dans un shell imbriqué #1652 :
" @charsleysa Je sais pourquoi nvm génère cette erreur. Dans votre sous-shell, la partie /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin de votre PATH a été déplacée de la fin du PATH au début.
- Lorsque nvm est ensuite lancé, il appelle nvm_change_path (ma contribution l'a changé de nvm_prepend_path), qui modifie la partie du chemin d'accès pertinente pour nvm.
- Nvm vérifie ensuite le préfixe npm actuel en demandant à npm ce qu'il est. Puisque /usr/local/bin/npm a maintenant la préséance, il rapporte /usr/local/bin.
- Nvm vérifie ensuite si le préfixe actuel tel que signalé par npm se trouve dans l'arborescence du répertoire de la version actuelle du nœud nvm (à ce stade, le répertoire d'installation de la version du nœud vers lequel votre alias nvm par défaut se résout).
- Le préfixe ne fait pas partie de cette arborescence, donc il se désactive (en appelant nvm_strip_path dans le processus, ce qui explique pourquoi il n'y a pas de chemin lié à nvm dans le PATH de votre sous-shell), et s'arrête avec l'erreur que vous obtenez. Le fichier /etc/profile (ou /etc/zprofile) de macOS appelle /usr/libexec/path_helper, qui effectue le changement de PATH.
Dans le shell parent, le PATH ne contient pas encore de répertoire nvm, donc au moment où nvm s'exécute, il ajoute son répertoire au chemin. Mais dans le sous-shell, PATH a été reconfiguré par macOS pour mettre tous les répertoires non-système à la fin et nous avons le problème."
J'obtenais toujours ce message lors du lancement d'un terminal intégré :
nvm n'est pas compatible avec l'option "prefix" de la configuration npm : actuellement définie à "/usr/local". Exécuter npm config delete prefix
o nvm use --delete-prefix vx.x.x --silent
pour le désactiver.
Ce que j'ai fait pour résoudre ce problème dans mon cas est la partie "solution de contournement" de ce même problème signalé qui est essentiellement la suivante :
- Réinitialisez le chemin en ajoutant la ligne suivante dans mon ~/.bash_profile, tout en haut, avant toute autre chose : PATH="/usr/local/bin:$(getconf PATH)"
Et après cela, il n'y a plus d'avertissements lorsque je lance un terminal intégré sur les deux éditeurs et je peux interagir avec nvm pour passer d'une version de node à une autre facilement et sans aucun problème.
C'est ici un autre alternative juste au cas où celle-ci ne serait pas d'une grande aide.
0 votes
Relié (et possiblement en double) : stackoverflow.com/questions/24585261/