npm报错:esbuild无法访问esbuild-android-64,错误含义及解决办法?
解决
npm ERR! esbuild-android-64 not accessible from esbuild错误 在Windows CI服务器执行依赖更新时频繁触发如下错误:
npm ERR! esbuild-android-64 not accessible from esbuild
已升级Node.js到16版本(已知该版本曾解决过esbuild的类似问题),但问题仍存在,本地Mac环境无此异常。
错误原因
该错误本质是esbuild的跨平台二进制包安装/缓存异常导致——esbuild会根据当前系统架构自动下载对应版本的二进制执行文件,Windows CI环境可能因缓存污染、权限限制、包管理器版本问题,错误拉取了非当前平台的二进制包(如android-64版本),进而导致依赖解析失败。
解决步骤
彻底清理包管理器缓存
执行命令清除npm缓存,避免残留错误包:npm cache clean --force若使用yarn则执行:
yarn cache clean重置依赖安装环境
删除项目目录下的node_modules文件夹、package-lock.json(npm)或yarn.lock(yarn),然后重新执行安装命令:npm install # 或 yarn install强制指定安装平台
在CI环境的安装命令中手动指定Windows平台,强制npm拉取适配的esbuild包:npm install --platform=win32升级CI环境的npm版本
确保CI环境的npm版本与Node.js 16兼容(推荐npm 8.x系列),旧版npm可能存在跨平台包解析bug,执行升级命令:npm install -g npm@8备选:禁用自动二进制包下载
若上述方法无效,可通过环境变量强制esbuild使用本地编译版本:# 设置环境变量后执行安装 set ESBUILD_SKIP_INSTALL=1 npm install注:此方法需要提前在CI环境编译好适配Windows的esbuild二进制文件。
内容的提问来源于stack exchange,提问作者Dan Bowling
相关产品推荐
相关产品推荐

