Nvm-windows: Problème avec les espaces vides dans le chemin

Créé le 17 févr. 2015  ·  71Commentaires  ·  Source: coreybutler/nvm-windows

Salut! J'ai un problème quand j'essaye nvm use <node_version>
captura
Désolé pour la langue espagnole dans la capture d'écran. Cela signifie que "c:\Users\Edu" n'est pas reconnu comme une commande interne... bla bla bla.
Mon nom d'utilisateur est "Edu Martin" et mon chemin est "c:\Users\Edu Martin\AppData\Roaming\nvm"
Est-il possible d'être une erreur avec des espaces noirs dans le chemin ?? Tous les paramètres de mon application sont standard

Commentaire le plus utile

Donc, une solution consiste à modifier votre settings.txt et à utiliser le schéma de nommage des dossiers Windows alternatif qui ne contient pas d'espaces, ce qui dans mon cas était :

2

(settings.txt est dans AppData\Roaming\nvm par défaut)

Tous les 71 commentaires

+1

La solution de contournement pour moi consistait à désinstaller puis à réinstaller pour l'utilisateur Public . Pas idéal mais heureux d'exécuter NVM sur Windows !

+1 de nombreuses installations Windows ont des noms d'utilisateur avec des espaces

+1 pour cela, j'ai rencontré le même problème avec mon nom d'utilisateur

1

Donc, une solution consiste à modifier votre settings.txt et à utiliser le schéma de nommage des dossiers Windows alternatif qui ne contient pas d'espaces, ce qui dans mon cas était :

2

(settings.txt est dans AppData\Roaming\nvm par défaut)

@coreybutler pouvons-nous s'il vous plaît avoir un correctif pour cela, s'il vous plaît s'il vous plaît s'il vous plaît ?

:priez: :priez: :priez: :priez: :priez: :priez: :priez: :priez: :priez: :priez: :priez: :priez: :priez:

voici un gif pour essayer de vous contraindre...

Mon environnement de construction a changé récemment/de manière substantielle, donc le problème est de publier les binaires (j'avais un script de construction vraiment personnalisé). Je serais heureux d'ajouter le correctif à la branche master, cela nécessiterait simplement la construction à partir des sources.

Je dois me rendre au Royaume-Uni la semaine prochaine, mais à mon retour aux États-Unis, je m'en occuperai dès que possible.

Ce serait adorable @coreybutler :) Aussi, peut-être pouvons-nous lier la prochaine version (avec ce patch) au #17, etc.

J'avais ce problème car il voulait utiliser "C:\Documents and Settings(mon nom)\Application Data\nvm" comme racine. Donc, ce que j'ai fait, c'est de réinstaller nvm, en spécifiant "C:\" comme racine au lieu de la valeur par défaut lors de l'installation, donc il stocke maintenant toutes les versions de Node dans "C:\nvm", qui bien sûr n'a pas d'espace dans le chemin. Settings.txt le confirme en tant que root. Je devais juste me rappeler de cd vers C:\ avant d'utiliser l'une des commandes nvm, sinon une erreur indiquait qu'il ne pouvait pas trouver settings.txt. Dans mon cas, puisque C:\ n'est associé à aucun utilisateur, lorsque je passe à une version de Node en utilisant "nvm use <version>", il me demande quel compte d'utilisateur je veux utiliser pour exécuter le programme. Mais ça a l'air de bien marcher; Je reçois le message "utilise maintenant le nœud <version>".

+1 Pour tous ceux qui souhaitent contourner le problème en modifiant le fichier settings.txt, vous pouvez l'essayer à partir de la ligne de commande pour obtenir le chemin formaté correct

cmd /c pour %A dans ("C:\Users\My Name With Spaces\AppData\Roaming\nvm") do @echo %~sA

L'installation de nvm-windows dans Program Files provoque également cette erreur. La mise à jour de settings.txt comme ci-dessous résout le problème, mais ce serait bien de le corriger ou de l'ajouter au fichier ReadMe en tant que « Gotcha » !

racine : C:\PROGRA~1\nvm
chemin : C:\PROGRA~1\nodejs

l'utilisation d'un lien de jonction symbolique sur Windows que j'ai trouvé est également une solution de contournement appropriée à ce problème
utiliser quelque chose comme ça
mklink /J nvm_home "C:\Users\Chris McGrath\AppData\Roaming\nvm"

puis mettez à jour settings.txt avec l'adresse de jonction

une fois que j'ai créé ce lien, la commutation a commencé à fonctionner sans aucun problème

Cette question est donc ouverte depuis près d'un an. Nvm-windows est-il mort ?

@codeimpossible - Pas mort, je viens d'avoir des priorités de vie plus élevées à gérer. Je posterai une note à ce sujet dans gitter.

@coreybutler voulait juste vous faire savoir que j'utilise nvm-windows tous les jours et j'apprécie tout le travail acharné que vous avez mis dans le projet

@kirkouimet Merci... ravi d'apprendre que cela est utile !

Salut coreybutler, excellent travail avec nvm. Cela me simplifie vraiment la vie :D

Mais pouvez-vous écrire n'importe où des informations sur l'espace ? Quelque chose comme

"Si vous avez un espace dans votre nom d'utilisateur, changez le répertoire par défaut utilisé par le programme d'installation et choisissez le chemin sans espace."

Je n'ai jamais édité de wiki sur github. J'ai un peu peur de ce que je peux faire.

@AntiCZ - Bonne idée. J'ai ajouté une page de problèmes communs pour résoudre ce problème. Je continuerai d'ajouter à cela si nécessaire.

Je résous le mien en utilisant:
cmd /c pour %A dans ("C:\Users\My Name With Spaces\AppData\Roaming\nvm") do @echo %~sA
par @mhchristensen .
Et puis changez la racine dans le setting.txt
Merci beaucoup :+1:

Sans un espace dans $env:USERPROFILE les gens ont-ils toujours des problèmes avec le chemin nodejs ayant des espaces dans Program Files ? Je ne vois pas le même comportement sur ma machine virtuelle Windows 2012R2.

Je vais tester avec un utilisateur avec un espace dans le nom pour voir si cela provoque un échec en cascade de quelque sorte. Ce serait formidable d'obtenir certaines versions du système d'exploitation et l'invite de commande que vous utilisez (PowerShell/CMD/Bash4Windows/GitBash).

En ce moment, je refactorise un package Chocolatey que quelqu'un a créé pour nvm et j'espère le publier bientôt. Il évite le programme d'installation et utilise le chemin d'installation chocolaté qui n'a pas d'espaces, et je n'ai eu aucun problème avec le chemin du nœud ayant des espaces dans le fichier settings.txt.

J'ai eu presque le même problème, sauf que mon nom d'utilisateur a une esperluette (&) au lieu d'un espace. Dans cette situation, l'utilisation du nom de dossier alternatif n'a pas aidé, car même le nom abrégé a toujours l'esperluette. Cependant, créer un lien symbolique, comme le suggérait @clmcgrath , était une bonne solution de contournement pour moi.

Installez-le simplement dans un répertoire sans rien de spécial. Par exemple : C:\nvm\

Aussi pourquoi le package NVM sur Chocolatey utilise le chemin C:\ProgramData\nvm puisqu'il s'agit de l'équivalent Program Files de "Tous les utilisateurs" mais sans espaces.

Cela peut être contourné en utilisant des noms alternatifs pour les dossiers ou les fichiers avec des espaces. Par exemple, j'ai installé nvm dans "C:\Programs Files\nvm". Allez dans le dossier au-dessus de ceux avec l'espace et utilisez l'option /X pour obtenir une liste de répertoires avec les noms antiques 8.3 :

cd \
rép /X

J'ai une ligne qui ressemble à...

15/02/2017 15:44 \

Ensuite, modifiez simplement le fichier settings.txt (dans \Programs Files\nvm dans mon cas) et modifiez le nom du dossier incriminé :

racine : C:\Progra\~1\nvm
chemin : C:\Progra\~1\nodejs

(C'est la même solution que @markbrownsword a donnée il y a plus d'un an, mais son message a été un peu mal formaté par le moteur de démarque.)

les fenêtres

déplacer vers le chemin là-bas sans espace

ou

exécuter cmd en tant qu'administrateur
puis mklink au nouveau chemin là-bas sans espace.

@coreybutler Des nouvelles de ce problème ? Je viens d'être touché. Je suis prêt à le PR si vous me dites quoi rechercher :)

Je viens de pré-publier la v1.1.6 , qui exploite un nouveau système de gestion des chemins dans Go 1.8.3. Tous mes tests locaux fonctionnent avec des espaces et des caractères spéciaux dans les chemins, mais je ne peux tester que sur une installation anglaise de Windows 10 pour le moment. J'espère que quelques personnes qui ont rencontré ce problème pourront le tester. En supposant que le problème soit résolu, je publierai officiellement la 1.1.6 en tant que correctif.

TBH, je n'ai pas eu ce problème dans un certain nombre de versions maintenant, ça se passe plutôt bien depuis environ un an maintenant

@clmcgrath - heureux de l'entendre !

Pour plus de précision, ma principale curiosité concerne les installations non anglaises, qui produisaient des caractères cachés Go reconnus comme un terminateur de chaîne... cela coupait le chemin prématurément.

Ne fonctionne toujours pas. J'ai essayé de changer le fichier setting.txt qui n'a pas aidé non plus.

@chillerfx - Des commandes s'exécutent-elles ou est-ce juste nvm use échec de

Sur mon système d'exploitation Windows 7, 'nvm list' fonctionne mais 'nvm use' ne marche pas. Ma langue est l'anglais. Changer également settings.txt pour utiliser ~1 en raison de l'espace dans le nom d'utilisateur ne fonctionne pas. Lorsque cela est fait, la liste nvm ne fonctionne pas non plus.

Ma configuration :

nvm v1.1.6
Windows 10 Professionnel (version 1703, build 15063.540)
Langue : anglais (Royaume-Uni)

Toujours avoir ce problème. nvm install latest fonctionne mais nvm use 8.4.0 échoue. Mon nom d'utilisateur contient un espace comme "John Smith" et l'erreur que j'obtiens est exit status 1: 'C:\Users\John' is not recognized as an internal or external command, operable program or batch file.

Tout (lister, utiliser, installer) fonctionne lorsque vous modifiez mon fichier de paramètres comme le suggère @ryan-mcguire.

Ceux qui ont des problèmes peuvent-ils exécuter nvm root et rapporter ce qui est imprimé ?

racine nvm : C:\Users\Jeff Utz\AppData\Roaming\nvm

Ma configuration :

nvm v1.1.6
Windows 10 Professionnel (1703, build 15063.540)
Langue : anglais (États-Unis)

Toutes les commandes fonctionnent à l'exception de nvm use ... nvm on activera nvm mais donnera ensuite l'erreur exit status 1

Essayez d'utiliser le nom de chemin raccourci.
Pour trouver le chemin raccourci :
C:\Utilisateurs
rép /x

N'oubliez pas de redémarrer Windows.

error

comment résoudre l'erreur ??veuillez partager votre réponse..

@ psiddharth709 - veuillez arrêter de poster la même question dans plusieurs numéros.

Je creuse la solution c:\nvm. J'aime avoir mes affaires, esp. sur Windows dans un dossier, je peux facilement le trouver (c:\xammp est mon serveur apache). J'ai fait comme ça et tout va bien. Merci pour le dur travail.

@coreybutler Vous pouvez tester le problème en installant nvm dans n'importe quel dossier avec un espace. Par exemple dans C:\Program files\nvm (l'erreur est comme indiqué par XepherX ci-dessus -- "'C:\Program' n'est pas reconnu...").

Je suppose que le problème est d'exécuter elevate.cmd avec exec.Command . Je ne suis pas sûr car je ne sais pas comment déboguer Go. Mais lorsque je renomme elevate.cmd j'obtiens une erreur concernant un fichier manquant et lorsque je restaure elevate.cmd j'obtiens l'erreur "'C:\Program' is not Recognized..."

Cela ne semble donc pas être un problème avec un jeu de caractères. Et le problème se produit à la fois sous Windows 7 et Windows 10. Même si cmd est déjà élevé (Exécuter en tant qu'administrateur).

@coreybutler Malheureusement, toujours le même problème pour moi qu'avec tout le monde dans ce numéro, même en utilisant la version préliminaire 1.1.6.

Merci tout le monde! Mes excuses pour les retards dans la sortie d'une nouvelle version... Je suis toujours submergé (et j'embauche).

@Eccenux - vous êtes peut-être sur quelque chose là-bas. Je vais revoir le elevate.cmd . Go est compilé, donc le débogage a lieu avant la construction. Je pense que la commande d'élévation est un coupable plus probable, mais confirmera la première chance que j'aurai.

J'ai eu le même problème que @davidrosevear. nvm install fonctionnait avec la 1.1.6, mais pas nvm use . Faites-moi savoir si je peux aider du tout @coreybutler.

j'ai toujours ce problème

@seanpoulter et toute autre personne intéressée à aider....

J'ai un gros problème - beaucoup de nouveaux clients arrivent dans ma société de conseil. Le problème : anormalement peu de temps pour travailler sur autre chose. Tout œil supplémentaire qui pourrait jeter un œil à cette question serait grandement apprécié. Je n'ai toujours pas eu l'occasion d'examiner la suggestion de @Eccenux concernant : elevate.cmd , mais je pense que c'est le point de départ. 1.1.6 a un tas de caractères go natifs qui s'échappent, donc mon instinct me dit que le problème ne vient pas de Go... mais la commande elevate n'est pas testée avec le reste du code.

Félicitations! C'est un gros problème à avoir en effet.

Regardons une solution communautaire et des relations publiques pour celle-ci pendant que @coreybutler est occupé. J'ai un gros PR à revoir sur un autre repo (vscode-jest), donc ce sera un peu avant que je puisse me plonger dans celui-ci moi-même.

ces versions de fichiers raccourcies ne fonctionnent pas et l'installation de R non plus dans un chemin avec un espace
Comment pouvons-nous résoudre ces problèmes. Si nous installons R dans un autre répertoire, utilisera-t-il toujours la variable de chemin pour autre chose ?

Comme cela fait un moment depuis la dernière version ici, j'ai décidé d'en publier une contenant le correctif que j'ai soumis juste avant sur mon fork en attendant :
https://github.com/shadow/nvm-windows/releases/tag/1.1.7

J'ai résolu en le déplaçant vers C:nvm, mais j'aimerais savoir si des correctifs sont prévus....

Merci @shadow vient d'installer votre version provenant de v 1.1.6 avec mon nom d'utilisateur étant "Cody Swartz" dans mon chemin, j'obtenais la même erreur que tout le monde et votre correctif semble propre et précis. Maintenant, nvm use fonctionne ! ??

Je viens de télécharger et d'installer nvm pour Windows pour la première fois aujourd'hui et j'ai rencontré ce problème. J'utilise la version 1.1.7. Y a-t-il quelque chose qui me manque ici ? Cela n'aurait-il pas dû être corrigé pour la v1.1.6 et les versions ultérieures ?

Ayant également ce problème. Rendre le tout à peu près inutilisable.

EDIT: Corrigé via l'astuce ~1.

Donc, une solution consiste à modifier votre settings.txt et à utiliser le schéma de nommage des dossiers Windows alternatif qui ne contient pas d'espaces, ce qui dans mon cas était :

Juste pour développer cela plus précisément, la conversion est la suivante : C:\Users\John Doe -> C:\Users\JOHND~1

Le bug persiste. Ce n'est pas résolu. Utiliser nvm 1.17

racine : C:\PROGRA1nvm
chemin : C:\PROGRA1\nodejs

La configuration ci-dessus mentionnée plus haut dans ce fil est fausse, ou ne fonctionne pas pour moi du moins ... ;)
Pour tous ceux qui tombent sur ce problème.
Lorsque vous avez installé nvm et nodejs dans C:\Program Files, utilisez simplement la configuration suivante dans settings.txt et cela devrait fonctionner.

root: C:\PROGRA~1\nvm
path: C:\PROGRA~1\nodejs

@Laslo89 a la bonne réponse, remplacer l'espace par ~ fonctionne bien

Donc, une solution consiste à modifier votre settings.txt et à utiliser le schéma de nommage des dossiers Windows alternatif qui ne contient pas d'espaces, ce qui dans mon cas était :

2

(settings.txt est dans AppData\Roamingnvm par défaut)

Une note rapide pour ceux qui manquent de compétences techniques générales comme moi. Si vous utilisez dir *. /x dans l'invite de commande, il répertoriera les répertoires dans l'emplacement actuel en vous donnant le nom du formulaire 8.3 dans la colonne du milieu. Vous pouvez ensuite l'utiliser pour modifier les paramètres comme indiqué ci-dessus. Cependant, comme mentionné précédemment, Program Files devient PROGRA~1 .

quel site Web fournit le dernier didacticiel lié aux ions.? s'il vous plaît dites-moi.....

>

comment ce problème n'est toujours pas résolu ?! S'il s'agit d'une régression en 1.1.7, pensez peut-être à ajouter quelques tests d'intégration/unité/régression pour couvrir le cas pas si rare des espaces dans les noms de chemin Windows (ou Linux d'ailleurs) avant de le publier...

Avez-vous besoin d'aide à ce sujet ou y a-t-il déjà quelqu'un qui y travaille activement ?

@julian-becker, tout d'abord, j'aimerais vous rappeler votre départ agressif :

comment ce problème n'est toujours pas résolu ?!

C'est dur. Les membres de la communauté open source ne vous doivent ni leur temps ni leur attention. Qu'est-ce qui rend votre temps libre plus précieux que les mainteneurs ou le nôtre ? Il semble que vous n'ayez pas pris le temps de voir que @coreybutler a déjà répondu à votre question ici :

J'ai un gros problème - beaucoup de nouveaux clients affluent dans ma société de conseil. Le problème : anormalement peu de temps pour travailler sur autre chose.

Vous avez également manqué la solution et le fork partagés par @shadow.

Deuxièmement, vous avez un excellent plan de match sur la façon dont cela doit être fait. Fais le! Si vous avez le temps, tous ceux qui regardent ce problème apprécieront qu'il soit corrigé. Jetez un œil à ce que @shadow a fait, ajoutez les tests, lancez un PR et contactez-nous ici pour obtenir de l'aide pour la révision du code. Quelqu'un est suffisamment intéressé pour aider à faire. Bonne chance et n'hésitez pas à nous contacter si vous avez besoin d'aide ! ??

lancer un RP

Pour éviter toute confusion possible et le travail effectué deux fois, je voudrais noter que mon correctif était déjà fusionné , il s'agit simplement de le publier.

Parfait! Je n'ai pas eu beaucoup de temps pour lire non plus. ??

@shadow Je viens de rencontrer à nouveau ce problème, une idée de quand il sortira ?

@coreybutler Cela vous créer un lien vers la version dans mon fork dans un dernier message ici, puis de verrouiller ce fil ? Je ne pense pas qu'il soit nécessaire d'en discuter davantage...

@coreybutler est-il possible de faire la sortie ?

Veuillez publier ceci :)

L'utilisation de la fourche libérée par shadow (voir le lien ci-dessus) a fonctionné pour moi comme la seule chose. Grand merci!

J'ai lié à la publication de @shadow dans les problèmes communs .

Désolé, cela me prend si longtemps pour couper une version. Je sais que cela semble simple, mais le temps a été brutal pour moi. Peut-être que j'écrirai à ce sujet un jour.

1.Dans cmd, accédez à votre répertoire personnel et tapez dir/x pour voir le nom abrégé de ce dossier
2. Ensuite, remplacez votre nom d'utilisateur par ce nom abrégé dans le fichier setting.txt
3. ça marche

+1 Pour tous ceux qui souhaitent contourner le problème en modifiant le fichier settings.txt, vous pouvez l'essayer à partir de la ligne de commande pour obtenir le chemin formaté correct

cmd /c pour %A dans ("C:\Users\My Name With Spaces\AppData\Roamingnvm") do @echo %~sA

Merci beaucoup, ce truc m'a sauvé la vie.

Résolu !!

Pour quelqu'un qui n'est pas capable de travailler avec ~1 méthode de @kirkouimet (Merci
Ouvrez CMD, accédez au dossier Utilisateurs et obtenez le nom du dossier raccourci.

et tapez

> dir\x

Annotation 2020-05-25 112714

Maintenant plus tard après avoir copié ou noté le nom du dossier
Annotation 2020-05-25 113201

J'espère que ça aide

Résolu !!

Pour quelqu'un qui n'est pas capable de travailler avec ~1 méthode de @kirkouimet (Merci
Ouvrez CMD, accédez au dossier Utilisateurs et obtenez le nom du dossier raccourci.

et tapez

> dir\x

Annotation 2020-05-25 112714

Maintenant plus tard après avoir copié ou noté le nom du dossier
Annotation 2020-05-25 113201

J'espère que ça aide

Merci à tous ceux qui ont suggéré la solution settings.txt mais spécialement Swarag-N pour une explication aussi complète. Je suis content d'avoir atterri ici et de ne pas avoir changé le nom de mon dossier de profil utilisateur.
Merci

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

thany picture thany  ·  4Commentaires

flpms picture flpms  ·  4Commentaires

David263 picture David263  ·  3Commentaires

leiamac picture leiamac  ·  4Commentaires

hsali picture hsali  ·  4Commentaires