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

Nuxt.js 3 生产构建启动失败 Mongoose依赖whatwg-url报错

Nuxt.js 3 (rc4) 生产构建启动崩溃(Mongoose连接MongoDB场景)

问题表现

  • 应用在开发服务器下运行无异常,完成生产构建后启动直接崩溃
  • 项目使用Mongoose连接MongoDB,问题指向Mongoose依赖链中的whatwg-url包

报错信息

调试确认本应作为构造类导出的whatwg_url_1.URL实际值为undefined,当前使用的核心依赖版本为Nuxt 3.0.0-rc.4、Mongoose 6.4.0,启动时完整报错如下:

/var/app/.output/server/node_modules/mongodb-connection-string-url/lib/index.js:74
class URLWithoutHost extends whatwg_url_1.URL {
                                          ^

TypeError: Class extends value undefined is not a constructor or null
    at Object.<anonymous> (/var/app/.output/server/node_modules/mongodb-connection-string-url/lib/index.js:74:43)
    at Module._compile (node:internal/modules/cjs/loader:1103:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1157:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/var/app/.output/server/node_modules/mongodb/lib/connection_string.js:6:41)
    at Module._compile (node:internal/modules/cjs/loader:1103:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1157:10)

排查结论

  • Mongoose/MongoDB和google-auth-library存在已知兼容性冲突,移除任意一个依赖,应用都能正常启动
  • 构建阶段会输出明确的依赖冲突警告,翻译后内容如下:
WARN  检测到存在多个主版本的webidl-conversions包将被外化处理,构建时默认选用最新版本。                                                         16:06:10  
  - 路径1:.../node_modules/gaxios/node_modules/webidl-conversions@3.0.1
  - 路径2:.../node_modules/webidl-conversions@7.0.0

根因说明

Nuxt生产构建的依赖外化逻辑检测到项目中存在两个主版本的webidl-conversions包,强制选用了最高的7.0.0版本,但google-auth-library的下游依赖gaxios仅适配3.0.1版本的webidl-conversions,版本不兼容直接导致whatwg-url模块导出异常,最终MongoDB的连接字符串解析模块尝试继承URL类时拿到undefined值,抛出类型错误造成进程崩溃。

修复方案

  • 修改nuxt.config.ts配置,将whatwg-url、webidl-conversions、mongodb-connection-string-url加入构建转译列表,跳过构建阶段的依赖外化处理
  • 通过包管理器的版本锁定能力(npm使用overrides字段、yarn/pnpm使用resolutions字段)统一webidl-conversions版本,或锁定whatwg-url到兼容版本,消除多版本冲突
  • 若业务暂不依赖Google账号鉴权能力,可直接移除google-auth-library依赖快速规避问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 21:09:33