You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

npm安装包失败:下载eslint相关依赖触发TAR_BAD_ARCHIVE错误

npm安装ESLint相关依赖触发TAR_BAD_ARCHIVE错误

问题描述

npm无法安装任何依赖,只要涉及eslint相关包,就会触发TAR_BAD_ARCHIVE错误,提示无法识别归档格式。

已尝试的无效操作

  • 清理npm缓存
  • 执行npm audit verify、npm audit fix、npm audit fix --force
  • 卸载并重新安装npm(多种方式尝试)
  • 尝试禁用ESLint,但React初始化脚本默认包含它
  • 尝试升级ESLint版本,安装时仍出现相同错误

错误日志

执行npm install、npm init @eslint/config@latest等命令时,日志报错片段如下:

片段1

7097 http fetch GET 304 https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz 864ms (cache skip)
7098 warn tar TAR_BAD_ARCHIVE: Unrecognized archive format
7099 silly tar Error: TAR_BAD_ARCHIVE: Unrecognized archive format
7099 silly tar     at Unpack.warn (/usr/local/lib/node_modules/npm/node_modules/tar/lib/warn-mixin.js:21:40)
7099 silly tar     at Unpack.warn (/usr/local/lib/node_modules/npm/node_modules/tar/lib/unpack.js:236:18)
7099 silly tar     at Unpack.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/tar/lib/parse.js:83:14)
7099 silly tar     at Unpack.emit (node:events:530:35)
7099 silly tar     at [emit] (/usr/local/lib/node_modules/npm/node_modules/tar/lib/parse.js:313:12)
7099 silly tar     at [maybeEnd] (/usr/local/lib/node_modules/npm/node_modules/tar/lib/parse.js:468:17)
7099 silly tar     at [consumeChunk] (/usr/local/lib/node_modules/npm/node_modules/tar/lib/parse.js:476:21)
7099 silly tar     at Unpack.write (/usr/local/lib/node_modules/npm/node_modules/tar/lib/parse.js:427:25)
7099 silly tar     at Unpack.end (/usr/local/lib/node_modules/npm/node_modules/tar/lib/parse.js:548:14)
7099 silly tar     at Pipe.end (/usr/local/lib/node_modules/npm/node_modules/minipass/dist/commonjs/index.js:116:23) {
7099 silly tar   recoverable: false,
7099 silly tar   cwd: '/Users/gevorg.sargsyan/Projects/dev/js/fireship-memento/node_modules/fast-deep-equal',
7099 silly tar   code: 'TAR_BAD_ARCHIVE',
7099 silly tar   tarCode: 'TAR_BAD_ARCHIVE'
7099 silly tar }

片段2

7146 silly packumentCache corgi:https://registry.npmjs.org/@svgr%2fwebpack cache-miss
7147 http fetch GET 200 https://registry.npmjs.org/@svgr%2fwebpack 68ms (cache hit)
7148 silly packumentCache corgi:https://registry.npmjs.org/@svgr%2fwebpack set size:85201 disposed:false
7149 warn deprecated workbox-core@6.6.1: this package has been deprecated
7150 warn deprecated workbox-core@6.6.1: this package has been deprecated
7151 warn deprecated workbox-core@6.6.1: this package has been deprecated
7152 warn deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
7153 verbose stack Error: TAR_BAD_ARCHIVE: Unrecognized archive format
7153 verbose stack     at Unpack.warn (/usr/local/lib/node_modules/npm/node_modules/tar/lib/warn-mixin.js:21:40)
7153 verbose stack     at Unpack.warn (/usr/local/lib/node_modules/npm/node_modules/tar/lib/unpack.js:236:18)
7153 verbose stack     at Unpack.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/tar/lib/parse.js:83:14)
7153 verbose stack     at Unpack.emit (node:events:530:35)
7153 verbose stack     at [emit] (/usr/local/lib/node_modules/npm/node_modules/tar/lib/parse.js:313:12)
7153 verbose stack     at [maybeEnd] (/usr/local/lib/node_modules/npm/node_modules/tar/lib/parse.js:468:17)
7153 verbose stack     at [consumeChunk] (/usr/local/lib/node_modules/npm/node_modules/tar/lib/parse.js:476:21)
7153 verbose stack     at Unpack.write (/usr/local/lib/node_modules/npm/node_modules/tar/lib/parse.js:427:25)
7153 verbose stack     at Unpack.end (/usr/local/lib/node_modules/npm/node_modules/tar/lib/parse.js:548:14)
7153 verbose stack     at Pipe.end (/usr/local/lib/node_modules/npm/node_modules/minipass/dist/commonjs/index.js:116:23)
7154 error code TAR_BAD_ARCHIVE
7155 error TAR_BAD_ARCHIVE: Unrecognized archive format
7156 silly unfinished npm timer reify 1730736384828
7157 silly unfinished npm timer reify:unpack 1730736388377
7158 silly unfinished npm timer reifyNode:node_modules/fast-deep-equal 1730736388382

解决方案

1. 彻底清理本地缓存与项目残留文件

  • 删除全局npm缓存(Mac/Linux):
    rm -rf ~/.npm
    
    Windows系统执行:
    rd /s /q %USERPROFILE%\.npm
    
  • 清理项目目录:
    删除项目下的node_modules文件夹和package-lock.json文件:
    rm -rf node_modules package-lock.json
    
    Windows系统执行:
    rd /s /q node_modules && del package-lock.json
    

2. 强制绕过缓存重新安装

执行安装命令时添加--no-cache参数,避免读取损坏的缓存文件:

npm install --no-cache
# 或初始化ESLint配置时
npm init @eslint/config@latest --no-cache

3. 更换npm镜像源

部分网络环境下,官方源下载的包可能损坏,切换到国内镜像尝试:

npm config set registry https://registry.npmmirror.com

完成后重新执行安装命令。

4. 更新npm到最新版本

旧版npm内置的tar模块可能存在bug,升级npm解决:

npm install -g npm@latest

5. 手动验证并替换损坏的包

从日志看,fast-deep-equal-3.1.3.tgz包解压失败,可手动下载该包并替换到缓存目录:

  1. 手动下载包文件
  2. 找到npm缓存中该包的存储路径(通常在~/.npm/_cacache下),替换为手动下载的正常文件
  3. 重新执行安装命令

内容的提问来源于stack exchange,提问作者gsario

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 15:47:17