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 存在,但为空。
我有完全相同的问题。
检查您的用户名是否没有空格,在某些情况下为“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 没有表明安装未成功完成。
我有同样的问题。 安装了 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
在对象。
在 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
在对象。
在 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 上遇到了同样的问题。
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
.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 只是众多环境中的一个。
_非常_早期的草稿模型:
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-proxy和npm 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 解压缩延迟的方法。
最有用的评论
仍然有同样的问题。
一年后仍然没有看到 1.1.8 @coreybutler