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?
5 Réponses :
Je pense que tu devrais courir
installation npm
cela devrait faire l'affaire.
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
?
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
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é?
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?
oui, les deux proviennent. même problème. avez-vous pu reproduire l'erreur d'origine?
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.
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é!
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) : l ôtez votre compte et connectez-vous annulez le code ci-dessus et le fichier shell source OU 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
# 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/
Merci pour votre réponse, mais rien de tout cela ne fonctionne. Avez-vous pu reproduire le problème?
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