0

我面临与 npm/yarn 相关的问题。我们在其中一个虚拟机中托管了一个 npm 注册表,使用 Verdaccio 发布我们的私有包。当我们第一次安装不是我们自己的包时,它们都通过 http://localhost:4873 路由到 registry.npmjs.org 并缓存在我们的 VM 上以便进一步快速访问。

问题是,如果我安装@amcharts/amcharts4-geodata包(大约 71 MB 的 tar 文件),我会收到错误消息unexpected end of file。如果我在 npm install 中使用详细标志,我发现这是因为 NodeJS 无法提取 zip 文件。错误堆栈是:

Error: http://localhost:4873/@amcharts%2famcharts4-geodata/-/amcharts4-geodata-4.1.16.tgz: unexpected end of file
    at Zlib.zlibOnError [as onerror] (zlib.js:183:17)

观察到的和我尝试过的事情:

  1. 它发生在 yarn 和 npm 上。
  2. 我在 Verdaccio 上禁用了缓存。但是禁用缓存仍然会存储所有第三方包的元数据。
  3. 更改 nodejs 版本没有任何影响。
  4. 如果我创建一个简单的测试文件夹并在那里安装相同的包而不提供自定义注册表,它就可以工作。
  5. 我在 Verdaccio 后面添加了一个 nginx 的反向代理,但它并没有解决问题。
4

1 回答 1

0

替换yarn installyarn install || yarn install || yarn install

如果您需要更高的稳定性,请尝试

RUN for i in 1 2 3 4 5 6; do yarn install && break || sleep 1; done

来源:https ://github.com/yarnpkg/yarn/issues/7521#issuecomment-564122782

于 2021-06-07T12:28:27.953 回答