如何修复`npm install`上包的超时?

Mel*_*Dog 10 npm npm-install

当我运行时,npm install它似乎工作正常,直到部分安装软件包。前半部分好像没有问题,但是过一段时间就无法访问其他包了。我只是得到重复的错误,例如:

npm http request GET https://registry.npmjs.org/react-hot-loader
npm info attempt registry request try #3 at 6:43:34 AM
npm http request GET https://registry.npmjs.org/react-tap-event-plugin
npm info attempt registry request try #3 at 6:43:34 AM
npm http request GET https://registry.npmjs.org/react-test-renderer
Run Code Online (Sandbox Code Playgroud)

等等。

它将继续执行此操作一个小时,然后安装将失败。

每次安装都会在不同的包中中断,所以我认为这不是特定文件的问题。

我可以使用浏览器和curl.

我的工作有防火墙,但此域已列入白名单。

有谁知道我能做些什么来让它工作或可能是什么原因造成的?

小智 14

如果您的互联网连接出现问题,请尝试增加超时:

npm config set timeout 6000000
Run Code Online (Sandbox Code Playgroud)

该值为 32 位 int。

  • 我开始收到错误““超时”参数必须是数字类型。运行此命令后收到类型 string`。 (3认同)

Chr*_*ris 7

如果它仍然相关或者可能对于其他感兴趣的人来说:对我来说它有帮助,删除 package.lock 文件并运行npm cache clean --force.


Ömü*_*çin 6

如果是关于时间问题,您应该找到 npm install 的速度解决方案。

所以你可以试试这些比 npm install 更快的命令:

pnpm install快 %70
或快
npm install --no-audit15%
或快
npm install --prefer-offline --no-audit15%

查看这篇文章了解详细信息:加速 npm 安装


小智 5

您可以覆盖~/.npmrc.

// npm config ls -l
// add these 2 lines in ~/.npmrc
fetch-retry-maxtimeout = 6000000
fetch-retry-mintimeout = 1000000
Run Code Online (Sandbox Code Playgroud)

  • 虽然此代码可以解决 OP 的问题,但最好包含有关代码如何解决 OP 问题的解释。通过这种方式,未来的访问者可以从您的帖子中学习,并将其应用到自己的代码中。SO 不是编码服务,而是知识资源。此外,高质量、完整的答案更有可能获得赞成。这些功能以及所有帖子都是独立的要求是 SO 作为平台的一些优势,这使其与论坛区分开来。您可以编辑以添加附加信息和/或用源文档补充您的解释。 (5认同)