Windows 8
1.1.5
安装节点版本8.2.1
因错误The filename or extension is too long
失败
λ nvm install 8.2.1
Downloading node.js version 8.2.1 (64-bit)...
Complete
Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...2017/07/21 09:02:31 mkdir C:\Users\suhas.karanth.RB\AppData\Roaming\nvm\temp\nvm-npm\npm-5.3.0\node_modules\libnpx\node_modules\yargs\node_modules\read-pkg-up\node_modules\read-pkg\node_modules\load-json-file\node_modules\parse-json\node_modules\error-ex\node_modules\is-arrayish: The filename or extension is too long.
尽管这是一个问题,但我怀疑是否有直接解决此问题的方法。 但是,创建此问题来分享我如何解决它以及如何避免它。
我安装了nvm( v1.1.6
)的最新预发行版本,但这一次将其安装到C:\nvm\
以节省路径长度。 之后能够成功安装节点v8.2.1
。 您认为默认情况下将nvm安装到此路径是否有意义?
此安装有问题...您是否同时安装了两个版本的NVM?
此时可能为时已晚,但是echo %NVM_SYMLINK%
输出什么?
否。发生错误时,我没有安装2个版本的NVM。
此时可能为时已晚,但是
echo %NVM_SYMLINK%
输出什么?
实际上,还不算太晚。 我有一个开放的终端,仍然有较旧的环境。
λ where nvm
C:\Users\suhas.karanth.RB\AppData\Roaming\nvm\nvm.exe
λ echo %NVM_SYMLINK%
C:\Program Files\nodejs
另外,我之前通过NVM安装并正在使用多个版本的节点:
λ nvm list
* 8.1.2 (Currently using 64-bit executable)
8.1.1
8.1.0
8.0.0
6.10.3
6.10.0
5.12.0
4.8.0
4.2.6
我有同样的问题。
Windows 10
锅壳
NVM 1.1.5
这是在节点8.2.0
和8.2.1
8.1.4
和8.1.3
工作正常。
$ nvm install 8.2.0
Downloading node.js version 8.2.0 (64-bit)...
Complete
Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...2017/07/22 00:15:41 mkdir C:\Users\Christopher\AppData\Roaming\nvm\temp\nvm-npm\npm-5.3.0\node_modules\libnpx\node_modules\yargs\node_modules\read-pkg-up\node_modules\read-pkg\node_modules\load-json-file\node_modules\parse-json\node_modules\error-ex\node_modules\is-arrayish: The filename or extension is too long.
我想知道我们是否应该在上游使用npm。
@clowenhg如果将nvm直接安装到C:\nvm
,此问题将得到解决,但是不再能识别现有的节点安装。 我已将多个节点文件夹移至C:\nvm
并能够看到它们列出的列表,但从未有机会对其进行测试。 多亏了Windows更新和启动循环。
那可能会起作用,但似乎只是暂时的解决方法,直到下一件事想再深入一个目录为止。 所以,是的,将其作为NPM的一个问题可能是一个不错的选择。
看到8尚未达到LTS的最终版本,我现在仅恢复到8.1.4。
新版本的npm确实存在许多问题,特别是那些包含npx支持的问题。 我在master分支中添加了对npx的支持,并将在1.1.6正式发布(当前正在测试)时将其发布。 然而; 即使在该分支中,npx仍然会失败(通过没有NVM4W的独立Windows Node安装程序也会失败)。
我相信这是一个npm问题,而不是NVM4W问题。 我正在关闭问题并将其标记为上游问题。
@coreybutler如果您不介意的话,请v8.1
,npx仍然可用并且可用,尽管在Windows上有问题。 但是nvm不必为此做任何事情。
节点8.1没有附带npx支持。 如果您在8.1中安装了它,则必须一直在npm install -g npm
某个位置运行以升级npm。 npx v5.3.0中添加了npx命令,npm 5.3.0附带的第一个Node版本是8.2.1。 有关详细信息,请参见#288。
是的。你可能是对的。 我确实记得升级npm。
我有同样的问题,我要解决的办法是:
git clone https://github.com/npm/npm.git
那你应该很好
谢谢@michaelkdh对我
稍有不同的是,当我克隆'npm.git'时,它创建了'npm'文件夹。 而且我不得不将“ npm”文件夹移动到“ node_modules”。
@ gblue1223同样,只需要npm就位。 干杯,
@coreybutler根据您链接的问题,您可以覆盖要安装的路径。
如果安装最新版本(1.1.6),而不是C:/Users/<username>/AppData/Roaming/nvm
请选择C:/nvm
作为安装文件夹,它应该可以工作。 安装8.4.0
没问题:)
对我来说,使用nvm root
更改nvm
的路径不起作用,我收到了奇怪的错误消息。 它没有复制nvm <commands>
,然后甚至node
停止工作。
按照@michaelkdh的建议手动克隆npm
也不起作用,并且与全新安装相比,似乎
@ peterbakonyi05重新定义nvm文件夹也只是为了安装它仍然有点不足。
@Sieabah我同意,整个问题很奇怪。 但是我认为它仍然比其他2个提议的解决方案更好(实际上它们都不对我有用)
对于仍然遇到此问题的用户,有人可以提供重新创建此错误的步骤吗? 还是截屏? 我还没有真正看到这个动作。
另外,我注意到很多人正在从他们的终端复制/粘贴...以及/c/whatever
,lambdas等语法不断出现..所有这些都表明人们正在使用Cygwin之类的东西,git shell,cmder等。请注意,这些shell并不总是遵守Windows平台标准_,它们_do_会影响路径的读取方式。 还有其他一些问题,因此请在发布之前尝试在标准终端中进行所有操作,以确保这是NVM4W问题,而不是终端外壳问题。
@coreybutler在这里,您可以使用cmd.exe
C:\ Users \ Christopher> nvm安装8.4.0
正在下载node.js版本8.4.0(64位)...
完成
创建C:\ Users \ Christopher \ AppDataRoamingnvm \ temp
正在下载npm版本5.3.0 ...完成
安装npm v5.3.0 ... 2017/09/05 16:50:14 mkdir C:\ Users \ Christopher \ AppDataRoamingnvm \ tempnvm-npmnpm-5.3.0node_modules \ libnpxnode_modules \ yargsnode_modules \ read-pkg-upnode_modules \ read-pkgnode_modules \ load-json-filenode_modules \ parse-jsonnode_modules \ error-exnode_modules \ is-arrayish:文件名或扩展名太长。
C:\ Users \ Christopher>其中nvm
C:\ Users \ Christopher \ AppDataRoamingnvmnvm.exe
C:\ Users \ Christopher> nvm安装8.4.0
正在下载node.js版本8.4.0(64位)...
完成
创建C:\ Users \ Christopher \ AppDataRoamingnvm \ temp
正在下载npm版本5.3.0 ...完成
安装npm v5.3.0 ... 2017/09/05 16:50:14 mkdir C:\ Users \ Christopher \ AppDataRoamingnvm \ tempnvm-npmnpm-5.3.0node_modules \ libnpxnode_modules \ yargsnode_modules \ read-pkg-upnode_modules \ read-pkgnode_modules \ load-json-filenode_modules \ parse-jsonnode_modules \ error-exnode_modules \ is-arrayish:文件名或扩展名太长。
C:\ Users \ Christopher>哪里节点
C:\ Program Filesnodejsjsnode.exe
C:\ Users \ Christopher>其中npm
C:\ Program Files节点
C:\ Program档案nodejsnpm.cmd
如果这有所作为,我也使用nvm版本1.1.5(也许您使用的是1.1.6?)
我可以确认升级到1.1.6可以解决此问题。 之所以有意义,是因为看起来某些文件路径管理现在使用本机Go库。
这也意味着文件路径错误位于nvm中,而不是npm本身。 在npm上提交的所有错误都可能需要再次检查。
感谢@ computerquip-streamlabs。 我遇到了这个问题,并通过升级nvm来解决,
scoop install [email protected]
然后,我可以使用nvm安装节点8.7.0。
使用“ npm安装:文件名或扩展名太长”来安装nvm 1.1.6修复错误
来自: C:\ Users \ [用户名] \ AppDataRoamingnvm
root: C:\nvm
path: C:\Program Files\nodejs
arch: 64
proxy: none
elevate.cmd
和elevate.vbs
复制到: 然后对我有用!
由于几个用户仍在运行,因此重新打开。
FWIW,我正在运行Windows 10,我确实启用了长文件路径,但是仍然无法安装高于6.x的节点版本...由于npm v 5.6中长文件路径的问题,升级到了nvm 1.1.6为我解决了这个问题。
最有用的评论
如果安装最新版本(1.1.6),而不是
C:/Users/<username>/AppData/Roaming/nvm
请选择C:/nvm
作为安装文件夹,它应该可以工作。 安装8.4.0
没问题:)对我来说,使用
nvm root
更改nvm
的路径不起作用,我收到了奇怪的错误消息。 它没有复制nvm <commands>
,然后甚至node
停止工作。按照@michaelkdh的建议手动克隆
npm
也不起作用,并且与全新安装相比,似乎