Nvm-windows: 全新安装 nvm 1.1.5,节点 8.10.0 - npm 不工作

创建于 2018-06-25  ·  27评论  ·  资料来源: coreybutler/nvm-windows

C:\Users\me> nvm install 8.10.0
Downloading node.js version 8.10.0 (64-bit)...
Complete
Creating C:\Users\me\AppData\Roaming\nvm\temp

Downloading npm version 5.6.0... Complete
Installing npm v5.6.0...

Installation complete. If you want to use this version, type

nvm use 8.10.0

C:\Users\me> nvm use 8.10.0
Now using node v8.10.0 (64-bit)

C:\Users\me> npm --version
module.js:549
    throw err;
    ^

Error: Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:188:16)
    at bootstrap_node.js:609:3
module.js:549
    throw err;
    ^

Error: Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:188:16)
    at bootstrap_node.js:609:3

目录 C:\Users\me\AppData\Roaming\nvm\v8.10.0\node_modules 存在,但为空。

最有用的评论

仍然有同样的问题。
一年后仍然没有看到 1.1.8 @coreybutler

所有27条评论

我有完全相同的问题。

检查您的用户名是否没有空格,在某些情况下为“C:\Users\Name LastName\AppData\Roaming\nvm”,当我将nvm安装文件夹更改为另一个位置“C:\node\nvm”时,安装节点 + npm 工作正常。

nvm root中没有空格(或其他奇数字符)。

我对 nvm 1.1.6 和安装节点 10.6.0(或任何其他节点版本)也有完全相同的问题。

如果我导航到<nvm-root>/v10.6.0/node_modules文件夹就是空的。 这符合尝试运行 npm 时的错误消息。

 Directory of C:\Users\flawi\AppData\Roaming\nvm\v10.6.0\node_modules

09.07.2018  18:22    <DIR>          .
09.07.2018  18:22    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  220.739.076.096 bytes free

如果我观察nvm install 10.6.0之后的安装过程,我可以看到 npm 是如何在C:\Users\flawi\AppData\Roaming\nvm\temp下载和提取的(我看到了npm-v6.1.0.zip和提取的文件夹)。 但是,安装后没有任何内容移动到<nvm-root>/v10.6.0/node_modules

为了完整起见,这里是我的settings.txt

root: C:\Users\flawi\AppData\Roaming\nvm
path: C:\Program Files\nodejs

顺便说一下,我在 nvm 版本 1.1.5 和 1.1.4 上也有同样的问题(如果我使用没有空格的路径)。

减轻

如果您在下载完成后从<nvm-root>/v10.6.0/temp复制npm-v6.1.0.zip并将其自己解压缩到<nvm-root>/v10.6.0/node_modules/npm一切正常。

我看到这个试图用 1.1.5 安装节点 10.6.0。 我什至从一开始就在管理员命令提示符下运行。

如果我从 nodejs.org 网站下载 10.6.0 包并将其与 nvm/v10.6.0 目录中的内容进行比较,那么安装的 nvm 缺少超过一半的 npm 包。

复制后,一切正常,但 nvm 没有表明安装未成功完成。

353相关?

我有同样的问题。 安装了 10.7.0,npm 不起作用。 nvm root 中没有空格

澄清一下,我在其中有一个 node_modules 文件夹和一个 npm 文件夹,但它缺少文件,并且在我尝试安装或重新安装时没有出现任何错误。 删除该 npm 文件夹后,手动下载 npm-v6.1.0.zip 并解压缩我的 npm 工作正常。

类似的问题(全新安装 nvm 1.1.5 - 在卸载节点并删除 user\AppData 中的任何 npm 目录之后......)。 当我输入 npm 时,我得到以下信息。

内部/模块/cjs/loader.js:583
抛出错误;
^

错误:找不到模块“npmlog”
在 Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
在 Function.Module._load (internal/modules/cjs/loader.js:507:25)
在 Module.require (internal/modules/cjs/loader.js:637:17)
在要求 (internal/modules/cjs/helpers.js:20:18)
在 C:\Users\timhu\AppData\Roaming\nvm\v10.7.0\node_modules\npm\bin\npm-cli.js:22:13
在对象。(C:\Users\timhu\AppData\Roaming\nvm\v10.7.0\node_modules\npm\bin\npm-cli.js:145:3)
在 Module._compile (internal/modules/cjs/loader.js:689:30)
在 Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
在 Module.load (internal/modules/cjs/loader.js:599:32)
在 tryModuleLoad (internal/modules/cjs/loader.js:538:12)
内部/模块/cjs/loader.js:583
抛出错误;
^

错误:找不到模块“npmlog”
在 Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
在 Function.Module._load (internal/modules/cjs/loader.js:507:25)
在 Module.require (internal/modules/cjs/loader.js:637:17)
在要求 (internal/modules/cjs/helpers.js:20:18)
在 C:\Users\timhu\AppData\Roaming\nvm\v10.7.0\node_modules\npm\bin\npm-cli.js:22:13
在对象。(C:\Users\timhu\AppData\Roaming\nvm\v10.7.0\node_modules\npm\bin\npm-cli.js:145:3)
在 Module._compile (internal/modules/cjs/loader.js:689:30)
在 Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
在 Module.load (internal/modules/cjs/loader.js:599:32)
在 tryModuleLoad (internal/modules/cjs/loader.js:538:12)

所以,我遇到了类似的问题并解决了它。 我将传达我为解决它而采取的步骤,希望它可以帮助某人。
tldr;
试试: nvm install <nodeversion> <32 or 64>
nvm install 8.11.4 64

首先,我安装了 nvm,然后是节点 8.11.4。
nvm 是否使用 8.11.4
当我尝试npm时,windows找不到它,并且8.11.4安装中的node_modules文件夹为空。
卸载nvm。
试图直接从 nodejs.org 安装 nodejs,它给了我一个长文件路径错误。
可能不需要做,但我做到了......
编辑我的系统注册表以允许所有用户使用长文件路径 ->
在 regedit 中,转到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Policies 并设置/创建一个名为 LongPathsEnabled 的 DWORD(32 位)条目,值为 1。(有一种方法可以在 Windows Pro 中执行此操作而无需进入注册表,但我m 在 Home 上,这不是一个选项)


再次安装 nvm,然后nvm install 8.11.4
有一些安全错误。
已卸载 8.11.4
使用命令nvm install 8.11.4 64重新安装指定 64 位

在那之后,一切似乎都奏效了。
就像我说的,希望这对其他人有帮助,但我确定里程可能会有所不同。 祝你好运!

我在 nvm 1.1.7 上遇到了同样的问题。

  • 我已经删除了对 node/npm 的所有引用
  • 全新安装 nvm 1.1.7
  • nvm install 6.5.0
  • nvm use 6.5.0
  • npm install -g gulp
  • 在我的AppData\Roaming\文件夹中创建一个 npm 文件夹并将 gulp 放入\npm\node_modules
  • 我的AppData\Roaming\nvm\v6.5.0\node_modules只有 npm 文件夹

我是否缺少一些 PATH 参数? 我有%NVM_HOME%%NVM_SYMLINK%

此外,似乎即使 gulp 安装在漫游的主要 npm 文件夹中,它也没有被使用。 如果我输入 gulp 命令它找不到它,如果我将 gulp 文件移动到相关的 nvm 文件夹,它就可以工作。

所以它的命令看起来在正确的位置,只是没有将它安装到正确的位置。

好的,我想我已经找到了问题所在。 看起来在内部 npm 仍然真正保留 AppData\Roaming 文件夹进行设置,其中之一是prefix 。 如果你这样做npm config get prefix它很可能会指向错误的位置。 您需要使用 nvm 创建的特殊nodejs文件夹的位置运行npm config set prefix ,即%NVM_SYMLINK% 。 现在,当我运行所有 npm 安装时,它会将它放在正确的位置,即使我切换 nvm 版本也是如此。

修复来源(与 nvm 无关): https ://stackoverflow.com/a/38270345/1535244

编辑: prefix的设置位于C:\Users\You\文件夹中的.npmrc文件中。 如果由于某种原因该设置存在于那里,它将被使用,并且看起来 nvm 不会更改它,因此它总是会查看错误的位置。 删除此文件中的此项也可以解决此问题。

我不确定这是否会帮助任何人,但我会把它留在这里以防万一。 我也遇到了这个问题,我发现@dfibuch@flawi所说的对于了解我遇到的问题非常有用。 所以这是我的所有信息:

  • 我的路径中没有任何空格
  • nvm版本1.1.6
  • 使用 64 位可执行文件
  • 在 Windows 中使用 Git Bash
  • 我确实从我的.npmrc删除了; prefix=C:\Program Files\nodejs的设置,我用npm config get prefix获得的值没有改变,它仍然是~\AppData\Roaming\npm

就我而言,我试图安装最新的node版本(当前10.9.0 ),因为我需要npm版本为>6才能运行npm audit ,我安装的最后一个node版本是8.11.3 ,它带有npm版本5.6.0

在删除prefix设置之前,当我安装带有nvm install latest 64节点版本10.9.0 ,我在~\AppData\Roaming\nvm文件夹中得到的只是一个名为v10.9.0的新文件夹node.exe ,但没有node_modules (就像它甚至没有尝试安装npm )。 我删除后prefix ,我开始在node_modules文件夹内创建nvm\v10.9.0 ,但我在安装过程中仍然得到一个错误:

$ nvm install latest 64
Downloading node.js version 10.9.0 (64-bit)...
Complete
Downloading npm version 6.2.0... Download failed. Rolling Back.
Rollback failed. remove ~\AppData\Roaming\nvm\temp\npm-v6.2.0.zip: The process cannot access the file because it is being used by another process.
Could not download npm for node v10.9.0.
Please visit https://github.com/npm/npm/releases/tag/v6.2.0 to download npm.
It should be extracted to ~\AppData\Roaming\nvm\v10.9.0

所以删除prefix设置对我来说有所改善,但并没有完全解决问题。 我也关闭了所有东西并重新尝试,所以不可能“它被另一个进程使用”。

之后,我决定尝试@flawi的过程。 我确实在我的nvm/temp文件夹中找到了npm-v6.1.0.zip文件,并试图将npm提取到我的nvm\v10.9.0文件夹中,这引发了 zip 文件是损坏或格式不正确。 这可能是 nvm 无法移动它或将其解压缩到我最新安装的 node.js 中的原因。

也许问题不完全是nvm ,而是 node 的 v 10.9.0最新版本的npm 10.9.0

我回到使用 v 8.11.3并用npm install npm<strong i="59">@latest</strong> -g更新npm npm install npm<strong i="59">@latest</strong> -g 。 它已正确更新,我可以运行npm audit 。 所以这就是为什么我认为10.9.0的包可能存在问题,而不是包本身的问题。

我还想补充一点,我有一个类似 @dfibuch 的问题。 我一周前在全球安装了serve ,它安装在与~\AppData\Roaming\npm\version\node_modules不同的文件夹中,并且还安装了gulp 。 Gulp 无论如何都可以工作(我不完全确定为什么)但是为了使serve包工作,我必须将它从安装位置手动复制到 nvm 中的版本文件夹中。

升级到 v1.1.7,它解决了 #373(Node 10.x.x+ 的 npm 问题)。 路径中的空格问题已在 master 中解决(通过 PR #355),并计划在 1.1.8 中发布。 如果您现在需要该功能,您可以从源代码构建。 我会尽快发布 1.1.8,但还有一些其他修复程序仍在合并中。

关闭,因为上述问题/决议应该解决这个问题。

我有同样的问题(空 node_modules 目录),禁用防病毒解决了这个问题(使用 nvm 1.1.7)

@sergioedo相同(通过 nvm 安装时禁用防病毒软件)。 谢谢您的帮助!

仍然有同样的问题。
一年后仍然没有看到 1.1.8 @coreybutler

现在要两年了@coreybutler ,什么都没有?

@filipemerker

(2019-09-06) 我正在积极致力于新的 Github 操作来构建版本。 master(其中包含即将发布的 1.1.8 版本)有几个很棒的贡献,但我总是不得不手工构建这些......正如你们中的许多人注意到的那样,我的时间非常宝贵限制了一段时间。 耗时的部分是准备 NSIS 构建,但一旦实现自动化,人们应该更容易贡献更改并实际看到它们发布。

当然,我仍然认为 1.1.8 不会解决这个问题(除非这里没有提到其他更改)。 它尝试安装 npm 的方式确实是防病毒软件不喜欢的,并且全面“禁用 AV”并不是每个人都想做甚至可以做的事情。

对于 McAfee Endpoint Security,阻止它的是“按访问扫描”。 但是,它的日志中从来没有任何内容(或者只有我的网络管理员可以访问它们)。

@tedyyu @filipemerker Github 操作在我处理它时完全改变了......不同的格式、库等。不得不重新启动,然后 Go 切换到模块。 到那时,我正忙于其他事情(见这个这个)。 因此没有新版本。 它并没有引起我的注意……事实上,我们正在开发一个全新的 CLI 开发环境,因为 NVM4W 只是众多环境中的一个。

_非常_早期的草稿模型:

image

RE:防病毒和 npm

主要的防病毒公司都已经提交并批准了 NVM4W……不知道为什么他们仍然会抱怨,但这可能与 npm 相关。 Node 8.xx 使用了一个带有一些硬编码安装依赖项的 npm 版本(尽管 Node 8 已弃用,但几年来这一直是这个过程中的一个棘手问题),这会产生一些奇怪的行为。

@coreybutler正如我所说,它不会抱怨它只是默默地阻止了提取/移动/复制。 也不是因为旧的 npm(这仍然发生在最新和 LTS 版本中)。 此评论是详细信息: https :

我刚刚去看看源代码。

// 有时 Windows 可能需要一些时间才能在解压缩后启用对大量文件的访问,请使用指数退避等待它准备就绪

如果这是真的,则可能是 AV 通过扫描每个提取的文件(其中有大约 4400 个)而大大减慢了它的速度。 当您的重试循环放弃时,您似乎没有做任何事情,这可以解释为什么失败是完全无声的。

我认为您要么需要更改等待它们“准备好”的方式,要么需要将它们直接提取到正确的位置。

如果您位于需要身份验证的代理的企业防火墙后面,您可能必须在此处使用此修复程序手动复制 npm 文件夹: https ://geektalk.tech/2019/05/29/nvm-is-a-life-saver-when @NShulzHenko在这里已经提到的: https : //gitter.im/coreybutler/nvm-windows?at = 5e137763e409da486cd5aba1

之后,建议在 npm 中配置一个代理,如下所述
npm config set https-proxynpm config set proxy这里

如果您必须在代理上进行身份验证,这可能还不够,那么您可能必须安装一个本地代理,该代理还支持提供px等身份验证令牌,并将您在 npm 中的代理设置为本地端口,例如http://172.0 .0.1 :3128

今天遇到同样的问题。 尝试了几次 - 也以管理员身份运行cmder,使用没有空间的NVM目录,但没有帮助。

C:\Development                                                                                                                         
λ nvm use 14.8                                                                                                                         
14.8.0                                                                                                                                 
Now using node v14.8.0 (64-bit)                                                                                                        

C:\Development                                                                                                                         
λ node -v                                                                                                                              
v14.8.0                                                                                                                                

C:\Development                                                                                                                         
λ npm -v                                                                                                                               
internal/modules/cjs/loader.js:1083                                                                                                    
  throw err;                                                                                                                           
  ^                                                                                                                                    

Error: Cannot find module 'C:\DevTools\nodejs\node_modules\npm\bin\npm-cli.js'                                                         
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:1080:15)                                                       
    at Function.Module._load (internal/modules/cjs/loader.js:923:27)                                                                   
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)                                                
    at internal/main/run_main_module.js:17:47 {                                                                                        
  code: 'MODULE_NOT_FOUND',                                                                                                            
  requireStack: []                                                                                                                     
}                                                                                                                                      
internal/modules/cjs/loader.js:1083                                                                                                    
  throw err;                                                                                                                           
  ^                                                                                                                                    

Error: Cannot find module 'C:\DevTools\nodejs\node_modules\npm\bin\npm-cli.js'                                                         
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:1080:15)                                                       
    at Function.Module._load (internal/modules/cjs/loader.js:923:27)                                                                   
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)                                                
    at internal/main/run_main_module.js:17:47 {                                                                                        
  code: 'MODULE_NOT_FOUND',                                                                                                            
  requireStack: []                                                                                                                     
}                                                                                                                                      

C:\Development             

@rkschamer谢谢,你让我走上了正轨。
在我的机器上, C:\Users\<usernname>\AppData\Roaming\nvm有一个临时文件夹,其中包含许多 zip npm zip 文件,但我无法提取它们,因为它们已损坏。
我能够通过卸载所有版本并删除带有 zip 文件的临时文件夹来解决它。 然后我再次开始安装所需的版本。

重申一下,解决方法是在安装时禁用 AV 扫描。

实际修复需要更好的解决 Windows 解压缩延迟的方法。

此页面是否有帮助?
0 / 5 - 0 等级