NPM 安装在 loadRequestedDeps 上挂起

NPM install hangs on loadRequestedDeps

当我使用 NPM 下载任何包时,它在最后一个命令上挂起 "loadRequestedDeps." 我已将整个 -verbose 输出添加到此问题的末尾以供参考。它会一直坐在那里直到我取消命令,不会安装任何东西,我的 package.json 也不会更新。

可能是什么问题?我环顾四周,但没有找到解决我的特定问题的方法。

这里有一些信息:

感谢任何可以提供帮助的人。详细输出如下。

npm info it worked if it ends with ok
npm info using npm@3.10.8
npm info using node@v6.9.1
npm info ok
npm info it worked if it ends with ok
npm verb cli [ 'C:\Program Files\nodejs\node.exe',
npm verb cli   'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js',
npm verb cli   'install',
npm verb cli   'moment',
npm verb cli   '--save',
npm verb cli   '-verbose' ]
npm info using npm@3.10.8
npm info using node@v6.9.1
npm verb request uri https://registry.npmjs.org/moment
npm verb request no auth needed
npm info attempt registry request try #1 at 11:19:11 AM
npm verb request id 6aa9ece5a04fcd33
npm verb etag W/"583b0871-194b0"
npm verb lastModified Sun, 27 Nov 2016 16:23:13 GMT
npm http request GET https://registry.npmjs.org/moment
npm http 304 https://registry.npmjs.org/moment
npm verb headers { date: 'Tue, 29 Nov 2016 19:19:02 GMT',
npm verb headers   via: '1.1 varnish',
npm verb headers   'cache-control': 'max-age=300',
npm verb headers   etag: 'W/"583b0871-194b0"',
npm verb headers   age: '11',
npm verb headers   connection: 'keep-alive',
npm verb headers   'x-served-by': 'cache-sjc3136-SJC',
npm verb headers   'x-cache': 'HIT',
npm verb headers   'x-cache-hits': '1',
npm verb headers   'x-timer': 'S1480447142.653125,VS0,VE0',
npm verb headers   vary: 'Accept-Encoding' }
npm verb etag https://registry.npmjs.org/moment from cache
npm verb get saving moment to C:\Users\Zach\AppData\Roaming\npm-cache\registry.npmjs.org\moment\.cache.json
npm verb correctMkdir C:\Users\Zach\AppData\Roaming\npm-cache correctMkdir not in flight; initializing
npm verb cache add spec moment
npm verb addNamed "latest" is being treated as a dist-tag for moment
npm info addNameTag [ 'moment', 'latest' ]
npm verb addNameTag registry:https://registry.npmjs.org/moment not in flight; fetching
npm verb get https://registry.npmjs.org/moment not expired, no request
npm verb addNamed "2.17.0" is a plain semver version for moment
npm verb addRemoteTarball https://registry.npmjs.org/moment/-/moment-2.17.0.tgz not in flight; adding
npm verb addRemoteTarball [ 'https://registry.npmjs.org/moment/-/moment-2.17.0.tgz',
npm verb addRemoteTarball   'a4c292e02aac5ddefb29a6eed24f51938dd3b74f' ]
[    ..............] \ loadRequestedDeps: verb addRemoteTarball [ 'https://registry.npmjs.org/moment/-/moment-2.17.0.tgz',

有时当您尝试多次安装一个包时,您需要清除缓存:npm cache clear。但是与 npm 相比,yarn 确实是一个更好的选择,它既快速又可靠。使用 npm -i -g yarn 安装它,并使用 yarn install.

从 package.json 下载依赖项 yarn add package_name

所以,在尝试清除 npm 缓存、更新我的 npm 和节点版本、重新安装 npm 和节点等之后...我发现将我的环境变量 TEMP 更改为 = C:\tmp工作了。我不确定为什么。任何信息都会很好。

我从这个帖子中找到了答案:npm install hangs on windows with multiple temp directories set

注意:我可以使用他使用的方法(在我的目录中使用 set 命令,但我必须对每个新项目都这样做。通过 SystemAdvanced System Settings, Environment Variables 全局更改了它,所以现在我可以开始了。

我遇到了完全相同的问题,在我找到这些解决方案之前,它让我发疯了大约一天。

在我的 C 盘中创建一个新的 "tmp" 文件夹,然后在我的 SYSTEM 环境变量C:\tmp。 我的 "npm install" 仍然无法正常工作。 (此操作基于 Zach Nagatani 的回答。)

我的 USER 环境 变量中还定义了 两个 TEMP 变量,我不得不删除一个 的变量,以便我的 "npm install" 开始工作。

The above action was based on this post: https://github.com/npm/npm/issues/7590

当我找到它时,我很高兴。非常感谢大家。

我尝试谷歌搜索对我没有任何帮助,最后我通过设置环境变量找到了解决方法

尝试使用 https://github.com/npm/npm/issues/10462

终于解决了问题(疑惑)

将系统和用户 TEMP 变量都指向 C:\temp 并创建一个目录为 C:\temp。

1.TEMP=C:\temp;

2.Make A Directory temp at C:\

在 C: 驱动器中创建新文件夹 tmp 并转到命令提示符并键入:

npm 配置设置 tmp C:/tmp

npm cache verify 成功了!

编辑

npm 卡在了 loadAllDepsIntoIdealTree

我无法弄清楚这个问题,所以它让我来到这里。我看到了@franckstifler 关于 npm cache clear 的回答并尝试了,但该命令已被弃用。

shell 本身建议使用 npm cache verify。我这样做了,它奏效了!缓存中的垃圾数据被清除了,我在我的工作文件夹上重新运行 npm i --save-dev 并且它起作用了。

这是非常普遍的错误.. 您必须使用

进行调试
npm install -verbose

也许 1) 锁定 package.json 2)你在私有网络中,由于某种原因无法访问外界 3)缓存不好(你可以尝试使用 npm clear cache )或(缓存验证)甚至改变它的路径(npm config set tmp)