Next.js部署AWS Amplify失败,报未引用的mongodb模块缺失错误如何解决?
部署错误修复方案
错误根因
你遇到的Module not found: Error: Can't resolve 'mongodb'报错,是项目中引入的typeorm包导致的:typeorm默认会引入所有支持的数据库驱动相关代码,webpack打包时会检测到mongodb的引用,如果你没有安装mongodb依赖就会抛出错误,和你项目实际是否使用mongodb功能无关。
修复步骤
- 方案1:直接卸载无用的typeorm依赖(优先推荐)
如果你的项目确实不需要使用typeorm,直接运行以下命令移除依赖即可:# npm npm uninstall typeorm # yarn yarn remove typeorm # pnpm pnpm remove typeorm - 方案2:配置Next.js webpack规则跳过无效依赖解析
如果你确实需要使用typeorm,就在项目根目录的next.config.js中添加以下配置,标记mongodb为外部依赖,打包时跳过解析:const nextConfig = { webpack: (config) => { config.externals.push({ mongodb: 'commonjs mongodb', // 如有其他未用到的数据库驱动也可以按需添加,比如pg、mysql2等 }) return config } } module.exports = nextConfig - 方案3:清理AWS Amplify构建缓存
修改代码后进入AWS Amplify控制台,找到对应项目的构建设置,开启「清理构建缓存」选项后重新触发构建,避免旧缓存导致异常。
可选优化(不影响构建成功)
你可以本地运行npx browserslist@latest --update-db更新caniuse数据库,消除日志中的过时警告。
内容的提问来源于stack exchange,提问作者soubhagya
相关产品推荐
相关产品推荐

