你好! 我在尝试nvm use <node_version>
时遇到问题
抱歉屏幕截图中的西班牙语。 这意味着“c:\Users\Edu”不被识别为内部命令...... bla bla bla。
我的用户名是“Edu Martin”,我的路径是“c:\Users\Edu Martin\AppData\Roaming\nvm”
路径中有黑色空格可能是错误的吗?? 我的应用程序中的所有设置都是标准的
+1
我的解决方法是卸载然后重新安装Public
用户。 不理想但很高兴在 Windows 上运行 NVM!
+1 许多 Windows 安装的用户名都带有空格
+1 为此,我的用户名遇到了同样的问题
因此,对此的解决方法是编辑您的 settings.txt 并使用没有空格的备用 Windows 文件夹命名方案,在我的情况下是:
(settings.txt 默认在 AppData\Roaming\nvm 中)
@coreybutler可以请我们解决这个问题吗?
:pray:: :pray:: :pray: :pray:: :pray: :pray: :pray: :pray: :pray:: :pray::
这是一个 gif 试图强迫你...
我的构建环境最近/实质性发生了变化,所以问题是发布二进制文件(我有一个真正定制的构建脚本)。 我很乐意将修复添加到主分支,它只需要从源代码构建。
我下周必须去英国,但当我回到美国时,我会尽快解决这个问题。
那将是可爱的@coreybutler :) 另外,也许我们可以将下一个版本(使用此补丁)链接到 #17 等?
我遇到这个问题是因为它想使用“C:\Documents and Settings(my name)\Application Data\nvm”作为根。 所以我所做的是重新安装 nvm,在安装过程中指定“C:\”作为根目录而不是默认值,所以它现在将所有版本的 Node 存储在“C:\nvm”中,当然它在小路。 Settings.txt 确认这是根。 我只需要记住在使用任何 nvm 命令之前 cd 到 C:\,否则它会抛出一个错误,说它找不到 settings.txt。 就我而言,由于 C:\ 不与任何用户关联,当我使用“nvm use <version>”切换到 Node 版本时,它会询问我想使用哪个用户帐户来运行程序。 但它似乎运行良好; 我收到“正在使用节点 <版本>”消息。
+1对于任何想要编辑settings.txt的解决方法的人,您可以从命令行尝试此操作以获得正确的格式化路径
cmd /c for %A in ("C:\Users\My Name With Spaces\AppData\Roaming\nvm") do @echo %~sA
将 nvm-windows 安装到 Program Files 也会导致此错误。 更新 settings.txt 如下解决了这个问题,但解决这个问题会很好,或者作为“陷阱”添加到自述文件中!
根目录:C:\PROGRA~1\nvm
路径:C:\PROGRA~1\nodejs
我发现在 Windows 上使用符号连接链接也是解决此问题的合适方法
使用这样的东西
mklink /J nvm_home "C:\Users\Chris McGrath\AppData\Roaming\nvm"
然后使用连接地址更新 settings.txt
一旦我创建了这个链接切换开始工作没有任何问题
所以这个issue已经开了快一年了。 nvm-windows 死了吗?
@codeimpossible - 没有死,我只是有更高的生活优先级要处理。 我将在 gitter 中发布有关它的说明。
@coreybutler只是想让您知道我每天都使用nvm-windows
并感谢您为项目付出的所有辛勤工作
@kirkouimet谢谢...很高兴听到它有帮助!
嗨,coreybutler,nvm 做得很好。 这真的让我的生活更轻松:D
但是你能在任何地方写下关于这个空间的信息吗? 就像是
“如果您的用户名中有空格,请更改安装程序使用的默认目录并选择没有空格的路径。”
我从来没有在 github 上编辑过 wiki。 我有点害怕我能做什么。
@AntiCZ - 好主意。 我添加了一个常见问题页面来解决这个
我使用以下方法解决我的问题:
cmd /c for %A in ("C:\Users\My Name With Spaces\AppData\Roaming\nvm") do @echo %~sA
通过@mhchristensen 。
然后在setting.txt中更改root
非常感谢:+1:
如果$env:USERPROFILE
中没有空格,人们是否仍然对程序文件中有空格的 nodejs 路径有问题? 我在 Windows 2012R2 VM 上没有看到相同的行为。
我将与名称中带有空格的用户一起进行测试,以查看这是否会导致某种级联故障。 获得一些操作系统版本以及您正在使用的 cmd 提示(PowerShell/CMD/Bash4Windows/GitBash)会很棒。
现在我正在重构某人为 nvm 创建的 Chocolatey 包,并希望尽快发布它。 它避免了安装程序并使用没有空格的巧克力安装路径,并且我在 settings.txt 文件中有空格的节点路径没有任何问题。
我遇到了几乎同样的问题,除了我的用户名有一个和号 (&) 而不是空格。 在这种情况下,使用备用文件夹名称无济于事,因为即使是短名称也仍然带有与号。 但是,正如@clmcgrath建议的那样,创建符号链接对我来说是一个很好的解决方法。
只需将其安装到没有任何特殊内容的目录即可。 例如:C:\nvm\
还有为什么 Chocolatey 上的 NVM 包使用 C:\ProgramData\nvm 路径,因为这是与“所有用户”等效的程序文件,但没有空格。
这可以通过使用带有空格的文件夹或文件的备用名称来解决。 例如,我在“C:\Programs Files\nvm”中安装了 nvm。 转到带有空格的文件夹上方的文件夹并使用 /X 选项获取带有古董 8.3 名称的目录列表:
光盘\
目录/X
我有一条线,看起来像...
2/15/2017 03:44 PM \
然后只需编辑 settings.txt 文件(在我的情况下在 \Programs Files\nvm 中)并编辑有问题的文件夹名称:
根目录:C:\Progra\~1\nvm
路径:C:\Progra\~1\nodejs
(这与@markbrownsword一年多前给出的解决方案相同,但他的消息被降价引擎
移动到没有空格的路径
或者
以管理员身份运行cmd
然后将它 mklink 到没有空格的新路径。
@coreybutler 有关于这个问题的消息吗? 我刚刚被它击中了。 如果你告诉我要找什么,我愿意公关它:)
我刚刚发布了v1.1.6 ,它利用了 Go 1.8.3 中的新路径管理系统。 我所有的本地测试都使用路径中的空格和特殊字符,但我目前只能在英语安装的 Windows 10 上进行测试。 希望遇到过这个问题的朋友可以测试一下。 假设问题已解决,我将正式发布 1.1.6 作为修复程序。
TBH 我现在在很多版本中都没有发生过这个问题,一年左右的时间已经很顺利了
@clmcgrath - 很高兴听到它!
为了澄清起见,我的主要好奇心是非英语装置,它们产生了一些隐藏字符,Go 被识别为字符串终止符......它过早地切断了路径。
还是不行。 我尝试更改 setting.txt 也无济于事。
@chillerfx - 是否运行任何命令,还是只是nvm use
失败? 另外,您的环境是什么语言环境(非英语?)
在我的 Windows 7 操作系统上,“nvm list”有效,但“nvm use”
我的设置:
nvm v1.1.6
Windows 10 专业版(版本 1703,内部版本 15063.540)
语言环境:英语(英国)
还是有这个问题。 nvm install latest
有效,但nvm use 8.4.0
失败。 我的用户名中有一个空格,比如“John Smith”,我得到的错误是exit status 1: 'C:\Users\John' is not recognized as an internal or external command, operable program or batch file.
不过,按照@ryan-mcguire 的建议,在编辑我的设置文件时,一切(列出、使用、安装)都有效。
那些有问题的人可以运行nvm root
并报告打印的内容吗?
nvm 根: C:\Users\Jeff Utz\AppData\Roaming\nvm
我的设置:
nvm v1.1.6
Windows 10 专业版(1703,内部版本 15063.540)
语言环境:英语(美国)
除了nvm use
... nvm on
之外的所有命令都将启用 nvm 但随后会出现exit status 1
错误
尝试使用缩短的路径名。
要找到缩短的路径:
C:\用户
目录/x
不要忘记重新启动 Windows。
如何解决错误??请分享您的回答..
@psiddharth709 - 请停止在多个问题中发布相同的问题。
我挖掘 c:\nvm 解决方案。 我喜欢拥有我的东西,尤其是。 在 Windows 上的一个文件夹中,我可以轻松找到它(c:\xammp 是我的 apache 服务器)。 这样做了,一切都很好。 感谢您的辛勤工作。
@coreybutler您可以通过在任何带有空格字符的文件夹中安装nvm
来测试该问题。 例如在C:\Program files\nvm
(错误如上面的 XepherX 所示——“'C:\Program' 无法识别...”)。
我的猜测是问题在于用elevate.cmd
运行exec.Command
。 我不确定,因为我不知道如何调试 Go。 但是,当我重命名elevate.cmd
我收到一个关于丢失文件的错误,当我恢复elevate.cmd
我收到错误消息“'C:\Program' 无法识别...”
所以这似乎不是字符集的问题。 并且该问题在 Windows 7 和 Windows 10 中都会出现。即使cmd
已经被提升(以管理员身份运行)。
@coreybutler不幸的是,即使使用 1.1.6 预发布版本,对我来说仍然是与此问题中的其他人相同的问题。
感谢大家! 我为延迟发布新版本而道歉......我仍然被淹没(和招聘)。
@Eccenux - 你可能在那里做点什么。 我将查看elevate.cmd
。 Go 已编译,因此调试在构建前进行。 我认为提升命令更有可能是罪魁祸首,但会确认我得到的第一次机会。
我和@davidrosevear 遇到了同样的问题。 nvm install
与 1.1.6 一起工作,但nvm use
没有。 让我知道我是否可以提供帮助@coreybutler。
我仍然遇到这个问题
@seanpoulter和其他任何有兴趣提供帮助的人......
我有一个很大的问题 - _很多_新客户涌入我的咨询公司。 问题是:处理其他任何事情的时间异常少。 任何可以查看此问题的额外眼睛将不胜感激。 我仍然没有机会研究@Eccenux的建议 re: elevate.cmd
,但我认为这是起点。 1.1.6 有一堆本地 go 字符转义,所以我的直觉说问题不在于 Go……但 elevate 命令没有用其余的代码进行测试。
恭喜! 这确实是一个很大的问题。
让我们在@coreybutler忙的时候看看这个社区的解决方案和公关。 我有一个很大的 PR 需要审查另一个 repo (vscode-jest),所以在我自己深入研究这个之前还需要一点时间。
那些缩短的文件版本不起作用,在带有空格的路径中安装 R 也不起作用
我们如何解决这些问题。 如果我们将 R 安装在不同的目录中,它是否仍将路径变量用于其他任何事情?
自从上次发布以来已经有一段时间了,我决定同时发布一个包含我之前在我的 fork 上提交的修复程序的修复程序:
https://github.com/shadow/nvm-windows/releases/tag/1.1.7
我通过将其移动到 C:nvm 来解决,但我想知道是否计划进行任何修复....
谢谢@shadow 刚刚安装了来自v 1.1.6
,我的用户名是“Cody Swartz”,在我的路径中我遇到了与其他人相同的错误,并且您的修复程序看起来很干净而且切中要害。 现在nvm use
起作用了! 🎉
我今天第一次下载并安装了 nvm for windows 并遇到了这个问题。 我正在运行 1.1.7 版。 有什么我在这里想念的吗? 这不应该在 v1.1.6 及更高版本中修复吗?
也有这个问题。 使整个事情几乎无法使用。
编辑:通过 ~1 技巧修复它。
因此,对此的解决方法是编辑您的 settings.txt 并使用没有空格的备用 Windows 文件夹命名方案,在我的情况下是:
为了更准确地扩展这一点,转换如下:C:\Users\John Doe -> C:\Users\JOHND~1
该错误仍然存在。 它没有解决。 使用 nvm 1.17
根目录:C:\PROGRA1nvm
路径:C:\PROGRA1\nodejs
这个线程前面提到的配置是错误的,或者至少对我不起作用......;)
对于任何偶然发现这个问题的人。
在 C:\Program Files 中安装 nvm 和 nodejs 后,只需在 settings.txt 中使用以下配置,它应该可以工作。
root: C:\PROGRA~1\nvm
path: C:\PROGRA~1\nodejs
@Laslo89有正确答案,用 ~ 替换空格效果很好
因此,对此的解决方法是编辑您的 settings.txt 并使用没有空格的备用 Windows 文件夹命名方案,在我的情况下是:
(settings.txt 默认在 AppData\Roamingnvm 中)
对于像我这样缺乏通用技术能力的人来说,这是一个快速说明。 如果您在命令提示符中使用dir *. /x
,它将列出当前位置中的目录,在中间列中为您提供8.3 表单名称。 然后,您可以使用它来更改上述设置。 虽然,如前所述, Program Files
变成了PROGRA~1
。
哪个网站提供离子相关的最新教程。? 请告诉我.....
>
这个问题怎么还没解决?! 如果它是 1.1.7 中的回归,也许可以考虑在发布之前添加一些集成/单元/回归测试来覆盖 Windows(或 linux 与此相关的)路径名中不那么罕见的空格情况......
你们需要这方面的支持还是已经有人积极致力于此?
@julian-becker,首先我想告诉你你激进的开始:
这个问题怎么还没解决?!
这很粗鲁。 开源社区的人们不欠你任何时间或注意力。 是什么让您的业余时间比维护者或我们的更宝贵? 您似乎没有花时间看到@coreybutler已经在这里回答了您的问题:
我有一个大问题——很多新客户涌入我的咨询公司。 问题是:处理其他任何事情的时间异常少。
您还错过了@shadow 共享的解决方案和分支。
其次,你有一个很好的游戏计划,应该如何做到这一点。 做吧! 如果您有时间,看到此问题的每个人都会感谢它已得到修复。 看看@shadow 做了什么,添加测试,获得 PR,并在此处寻求代码审查方面的帮助。 有人自私到足以帮助完成。 祝你好运,如果需要帮助,请联系这里! 👏
获得公关
为避免可能的混淆和工作重复进行,我想指出我的修复程序已经合并,这只是实际发布它的问题。
完美的! 我也没有那么多时间阅读。 😆
@shadow 又遇到这个问题了,不知道什么时候发布?
@coreybutler你介意在这里的最后一篇文章中链接到我的 fork 中的版本,然后锁定这个线程吗? 我认为没有必要进一步讨论它......
@coreybutler可以发布吗?
请释放这个:)
使用 shadow 发布的叉子(见上面的链接)对我来说是唯一的方法。 太谢谢了!
我已链接到@shadow 在常见问题中的发布。
对不起,我花了这么长时间才发布。 我知道这看起来很简单,但时间对我来说是残酷的。 也许有一天我会写它。
1.在cmd中,进入你的主目录并输入dir/x以查看该文件夹的缩写名称
2.然后在setting.txt中用这个缩短的名称替换你的用户名
3.它有效
+1对于任何想要编辑settings.txt的解决方法的人,您可以从命令行尝试此操作以获得正确的格式化路径
cmd /c for %A in ("C:\Users\My Name With Spaces\AppData\Roamingnvm") do @echo %~sA
非常感谢这件事救了我的命。
对于无法使用@kirkouimet 的~1 方法的
打开 CMD 转到用户文件夹并获取缩短的文件夹名称。
并输入
dir\x
现在稍后复制或记下文件夹名称后
希望能帮助到你
解决了!!
对于无法使用@kirkouimet 的~1 方法的
打开 CMD 转到用户文件夹并获取缩短的文件夹名称。并输入
>
dir\x
现在稍后复制或记下文件夹名称后
希望能帮助到你
谢谢大家,提出了 settings.txt 解决方案,但特别是 Swarag-N 进行了如此详尽的解释。 我很高兴来到这里并且没有更改我的用户配置文件文件夹名称。
谢谢
最有用的评论
因此,对此的解决方法是编辑您的 settings.txt 并使用没有空格的备用 Windows 文件夹命名方案,在我的情况下是:
(settings.txt 默认在 AppData\Roaming\nvm 中)