Nuxt3升级后本地正常但Firebase部署失败:fsevents平台不兼容
Nuxt3部署Firebase出现EBADPLATFORM错误的解决方法
问题情况
本地已升级至最新版本Nuxt3,在Darwin系统下运行、构建均正常,但部署至Firebase时触发以下错误:
Build failed: npm ERR! code EBADPLATFORM
npm ERR! notsup Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin"} (current: {"os":"linux","arch":"x64"})
npm ERR! notsup Valid OS: darwin
npm ERR! notsup Valid Arch: undefined
npm ERR! notsup Actual OS: linux
npm ERR! notsup Actual Arch: x64
本地配置信息
- 操作系统:
Darwin - Node版本:
v16.20.0 - Nuxt版本:
3.2.3 - Nitro版本:
2.2.3 - 包管理器:
npm@8.19.4 - 构建工具:
vite - 用户配置:
typescript,ssr,nitro,runtimeConfig,modules,i18n,pinia,css,build,vite,hooks,app - 运行时模块:
@pinia/nuxt@0.4.7,@nuxtjs/i18n@8.0.0-beta.10 - 构建模块:
-
错误原因
fsevents是仅适配macOS(darwin)的文件系统监听工具,属于开发依赖。Firebase部署环境为Linux系统,若部署过程中错误安装了开发依赖,就会触发该平台不兼容报错。
解决步骤
- 检查依赖分类:确认
package.json中fsevents处于devDependencies而非dependencies,避免生产环境安装该依赖。 - 修改部署命令:在Firebase构建配置中,使用
npm ci --only=production或npm install --production命令安装依赖,跳过开发依赖的安装流程。 - 标记为可选依赖:若
fsevents是间接依赖无法直接调整,可在package.json中添加如下配置,让不支持的平台自动跳过该依赖安装:"optionalDependencies": { "fsevents": "^2.3.2" } - 重新生成锁文件:删除本地
node_modules和package-lock.json,执行npm install重新生成锁文件,确保依赖记录准确后再部署。
内容的提问来源于stack exchange,提问作者j-printemps
相关产品推荐
相关产品推荐

