关于 tarball data for *** seems to be corrupted. Trying one more time 的解决方法

首发于 语雀文档@blueju

前言

新同事电脑上安装依赖出现了点问题,组员也未能解决,我也花了写些时间才解决,特此记录一下。
报错信息大致如下:

tarball data for @ngfed/fc-business seems to be corrupted. Trying one more time
...
Error: EPERM: operation not permitted
...
ENOENT: no such file or direcotry, open
...

环境

  • 公司内网
  • 公司私有 npm 源
  • 使用 Win10 电脑
  • 使用 npm 安装依赖

干货正文

本想详细记录不断尝试的过程与分析,但时间有限,不说过多的无效答案,我大概尝试过以下处理方案:

  1. 删除依赖重新安装
  2. 删除依赖并清空 npm 缓存后重新安装
  3. 删除 lock 文件重新安装(失去了具体 lock 版本控制,由于内网代理有问题,无 lock 后无法拉取内网 npm 仓库没有的最新包)
  4. 切换到非系统盘安装
  5. 中文路径改为英文路径
  6. 删除用户目录下的.npmrc
  7. 关闭其他可能占用了该路径该目录的软件
  8. 重启
  9. 重装 node 和 npm
  10. 升级 npm

最后解决办法

其实以上第 3 种方法其实是可行,只是针对于网络环境特殊,无法正常拉包

  1. 注意到以上代码块第一行的一处报错的包名 @ngfed/fc-business
  2. 卸载 npm uninstall @ngfed/fc-busines
  3. 单独重新安装 npm install @ngfed/fc-busines
  4. 全部重新安装 npm install
  5. 成功

原因

安装成功后,我注意到 git 中 packag-lock.json 有变更,变更处是 integrity,这类似于我们平时下载大文件时网站提供的校验码,确保文件没有在下载过程中损坏,确保完整性。
由于周边基建的不完善,我们的 @ngfed/fc-busines 业务组件库开发人员未更新版本号就覆盖发布,导致对应版本的包在,但是校验码却变了,从而在含原有该包的 package-lock.json 的项目重新拉去依赖,拉下来的包与 package-lock.json 中的校验码对不上报错的情况。

npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated npm WARN deprecated stable@0.1.8: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility npm WARN deprecated consolidate@0.15.1: Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated npm WARN deprecated w3c-hr-time@1.0.2: Use your platform's native performance.now() and performance.timeOrigin. npm WARN deprecated microargs@1.1.2: This project has been renamed to @pawelgalazka/cli-args. Install using @pawelgalazka/cli-args instead npm WARN deprecated microcli@1.3.3: This project has been renamed to @pawelgalazka/cli . Install using @pawelgalazka/cli instead npm WARN deprecated @babel/polyfill@7.12.1: 🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information. npm WARN tarball tarball data for @jest/types@http://10.129.3.105:8081/repository/npm-all/@jest/types/-/types-27.5.1.tgz (sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==) seems to be corrupted. Trying again. npm WARN deprecated runjs@4.4.2: This project has been renamed to 'tasksfile'. Install using 'npm install tasksfile' instead. npm WARN tarball tarball data for @jest/console@http://10.129.3.105:8081/repository/npm-all/@jest/console/-/console-27.5.1.tgz (sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==) seems to be corrupted. Trying again. npm WARN tarball tarball data for @jest/test-result@http://10.129.3.105:8081/repository/npm-all/@jest/test-result/-/test-result-27.5.1.tgz (sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==) seems to be corrupted. Trying again. npm WARN deprecated svgo@1.2.0: This SVGO version is no longer supported. Upgrade to v2.x.x. npm WARN tarball tarball data for @jest/types@http://10.129.3.105:8081/repository/npm-all/@jest/types/-/types-27.5.1.tgz (sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==) seems to be corrupted. Trying again. npm WARN tarball tarball data for @jest/console@http://10.129.3.105:8081/repository/npm-all/@jest/console/-/console-27.5.1.tgz (sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==) seems to be corrupted. Trying again. npm WARN tarball tarball data for @jest/test-result@http://10.129.3.105:8081/repository/npm-all/@jest/test-result/-/test-result-27.5.1.tgz (sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==) seems to be corrupted. Trying again.
07-22
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值