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

无法使用NPM更新BrowserList的故障排查

问题

执行npx update-browserslist-db@latest更新BrowserList时出现以下错误:

/home/tburton/.npm/_npx/2662cbd72e57abb6/node_modules/update-browserslist-db/cli.js:39
      throw e
      ^

SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at getLatestInfo (/home/tburton/.npm/_npx/2662cbd72e57abb6/node_modules/update-browserslist-db/index.js:73:15)
    at updateDB (/home/tburton/.npm/_npx/2662cbd72e57abb6/node_modules/update-browserslist-db/index.js:267:16)
    at Object.<anonymous> (/home/tburton/.npm/_npx/2662cbd72e57abb6/node_modules/update-browserslist-db/cli.js:34:5)
    at Module._compile (node:internal/modules/cjs/loader:1198:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
    at Module.load (node:internal/modules/cjs/loader:1076:32)
    at Function.Module._load (node:internal/modules/cjs/loader:911:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:22:47

已尝试的操作:

  • 执行npm cache clean --force清理缓存
  • 更新至最新NPM版本
  • 修改package.json中的browserslist配置为:
"browserslist": [
      "> 0.2%",
      "not dead",
      "last 2 chrome version",
      "last 2 firefox version",
      "last 2 safari version"
  ],

问题依旧,推测本地文件已损坏,请问故障原因是什么,该如何修复?


回答

故障原因

这个错误是update-browserslist-db工具解析JSON文件时遇到了不完整内容(文件提前结束)。从报错栈的getLatestInfo函数来看,核心原因是本地caniuse-lite数据库文件或工具依赖的缓存JSON文件损坏,导致JSON解析失败。

修复步骤

  • 删除本地caniuse-lite文件并重装
    先删除项目依赖中的caniuse-lite目录,再重新安装:

    rm -rf node_modules/caniuse-lite
    npm install
    

    若为全局环境问题,用npm root -g查看全局依赖路径,删除对应目录下的caniuse-lite后全局重装:

    rm -rf $(npm root -g)/caniuse-lite
    npm install -g caniuse-lite
    
  • 强制跳过本地缓存拉取数据
    执行命令时添加环境变量,强制工具从远程获取最新数据,不使用本地缓存:

    BROWSERSLIST_DB_CACHE=false npx update-browserslist-db@latest
    
  • 清理npx临时缓存
    npx生成的临时目录(如报错中的/home/tburton/.npm/_npx/2662cbd72e57abb6)可能存在损坏文件,直接删除整个_npx缓存目录:

    rm -rf ~/.npm/_npx
    

    之后重新执行更新命令。

  • 验证package.json格式合法性
    确保整个package.json无语法错误(如多余逗号、引号不匹配),用npm命令检查:

    npm validate
    

若以上方法都无效,彻底重置项目依赖:

rm -rf node_modules package-lock.json
npm install

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:35:06