2
votes

Erreur NPM / NVM lors du démarrage de tmux: nvm n'est pas compatible avec l'option npm config "prefix": actuellement définie sur ""

Lorsque je démarre une nouvelle session tmux avec tmux , tmux new ou tmux new-session , j'obtiens l'erreur suivante:

module.js:549
    throw err;
    ^

Error: Cannot find module '../lib/utils/unsupported.js'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at /usr/local/lib/node_modules/npm/bin/npm-cli.js:19:21
    at Object.<anonymous> (/usr/local/lib/node_modules/npm/bin/npm-cli.js:153:3)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)

J'ai essayé la solution pour cette question c'est-à-dire npm delete prefix mais en vain: l'exécution en dehors de la session tmux ne résout pas le problème, et l'exécution dans la session tmux jette la section supérieure de la précédente à nouveau (sans l'avertissement npm):

module.js:549
    throw err;
    ^

Error: Cannot find module '../lib/utils/unsupported.js'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at /usr/local/lib/node_modules/npm/bin/npm-cli.js:19:21
    at Object.<anonymous> (/usr/local/lib/node_modules/npm/bin/npm-cli.js:153:3)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
nvm is not compatible with the npm config "prefix" option: currently set to ""
Run `npm config delete prefix` or `nvm use --delete-prefix v10.8.0 --silent` to unset it.

Cela semble être un problème avec npm car l'erreur .js se produit également lorsque j'exécute npm --help . Cependant, cela ne se produit que dans tmux.

Des solutions?


1 commentaires

J'ai également découvert ce problème uniquement sur MacOS. Fonctionne très bien sur Linux. De plus, npm et node fonctionnent bien pour moi même sur MacOS (je n'obtiens pas l'erreur JS que vous faites), mais dès que le shell démarre, j'obtiens le message nvm is not compatible with ... . Il exécute également une version système de node, et je peux utiliser une version différente avec nvm. Mais curieux de savoir pourquoi cela n'arrive qu'avec tmux


5 Réponses :


0
votes

Je pense que tu devrais courir

installation npm

cela devrait faire l'affaire.


1 commentaires

Désolé cela ne fonctionne pas pour moi. Cela apparaît dès que le shell démarre. Avez-vous pu reproduire l'erreur avec nvm ?



0
votes

Corrigé: il semble que cela puisse être spécifique à la façon dont macOS gère chemins sur chaque shell bash. Ajout de la logique de suppression de chemin recommandée dans mes fichiers de profil a corrigé ce problème pour moi.

Voir cela aussi, juste sur tmux, avec nvm installé via le script curl.

Curieusement, il semble que j'utilise différentes versions de npm lorsque je suis dans tmux et que je suis juste dans mon shell (zsh). Quand je suis dans tmux, faire un quel npm aboutit à / usr / local / bin / npm tandis que dans zsh, c'est /Users/brett/.nvm/versions/node/v10. 8.0 / bin / npm .

Il semble que cela puisse être lié au rechargement par tmux de mes fichiers de profil et à l'ajout de chemins supplémentaires à $ PATH.

Regardez ici: Quand l'utilisation de tmux nvm n'est pas fournie


7 commentaires

Ne pas installer de nœud via Brew. Cette question concerne nvm (Node Version Manager) .


@JeffPuckett L'avez-vous vérifié? Il n'y a pas de solution spécifique


Désolé, aucune de ces solutions ne fonctionne pour moi. Avez-vous pu le reproduire?


Est-ce un problème uniquement sur «Mac»?


Cela fonctionne bien sur Mac. Ne se produit que dans tmux sur Mac.


Regardez ma réponse maintenant. Je n'ai pas recréé cela. Je recherche des forums. Les gens ont un problème similaire, des solutions différentes. Dans certaines œuvres, pas dans d'autres.


@JeffPuckett Avez-vous essayé?



0
votes

Bash commence comme un shell de connexion dans tmux. Sur macOS, c'est ~ / .bash_profile, et non ~ / .bashrc qui provient alors, AFAIK.

Avez-vous essayé d'ajouter source ~ / .bashrc à votre ~ / .bash_profile?


1 commentaires

oui, les deux proviennent. même problème. avez-vous pu reproduire l'erreur d'origine?



0
votes

Voici une autre solution possible:

$ npm config delete prefix 
$ npm config set prefix $NVM_DIR/versions/node/v6.11.1

Cela devrait supprimer et réinitialiser le préfixe, que vous pourrez modifier plus tard.


4 commentaires

J'espère que cela aidera!


Merci, mais si vous lisez la question originale publiée, vous devriez voir que cela a déjà été essayé et ne fonctionne pas ici.


Vous pouvez consulter ce lien (la deuxième réponse, celle avec 55 votes positifs): stackoverflow.com/questions/34718528/...


Alors je n'ai aucune idée de comment résoudre ce problème, désolé!



1
votes

Après avoir fouillé sur Internet, j'ai trouvé des réponses acceptées:

Essayez de reconfigurer la référence $ NVM_DIR.

Par exemple, nvm utilise la v7.10.0 et affiche l'erreur: Exécutez npm config delete prefix ou nvm utilisez --delete-prefix v7.10.0 --silent pour le désactiver.

Vous devez remplacer le préfixe nvm,

npm config set prefix $ NVM_DIR / versions / node / v7.10.0

https://github.com/nvm-sh/nvm/issues/855#issuecomment-314309706

OU p >

Si vous utilisez un autre shell que bash, assurez-vous de configurer votre tmux de cette façon:

nvm unalias default

Cela a résolu le problème pour moi.

https://github.com/nvm-sh/nvm/ issues / 1245 # issuecomment-370396741

commentez le code ci-dessous dans votre fichier shell (comme ~ / .zshrc) :

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"  # This loads nvm bash_completion

l ôtez votre compte et connectez-vous

annulez le code ci-dessus et le fichier shell source

OU

# set default shell to zsh
set -g default-command /bin/zsh
set -g default-shell /bin/zsh
https://stackoverflow.com/a/47861348/6700273 https://blog.natetodd.com/nvm/


1 commentaires

Merci pour votre réponse, mais rien de tout cela ne fonctionne. Avez-vous pu reproduire le problème?