NextJS 13部署Amazon Amplify后报错:找不到模块'./chunks/768.js'求助
NextJS 13 + Amplify 社交OAuth部署后出现MODULE_NOT_FOUND错误的解决建议
部署带有Amplify社交OAuth配置的NextJS 13应用到Amazon Amplify后,访问时出现以下错误:
Error: Cannot find module './chunks/768.js' Require stack: - /tmp/app/.next/server/webpack-runtime.js - /tmp/app/.next/server/pages/_document.js - /var/task/node_modules/next/dist/server/require.js - /var/task/node_modules/next/dist/server/next-server.js - /tmp/app/server.js at Function.Module._resolveFilename (node:internal/modules/cjs/loader:995:15) at Function.mod._resolveFilename (/var/task/node_modules/next/dist/build/webpack/require-hook.js:23:32) at Function.Module._load (node:internal/modules/cjs/loader:841:27) at Module.require (node:internal/modules/cjs/loader:1067:19) at require (node:internal/modules/cjs/helpers:103:18) at Object.__webpack_require__.f.require (/tmp/app/.next/server/webpack-runtime.js:185:28) at /tmp/app/.next/server/webpack-runtime.js:103:40 at Array.reduce (<anonymous>) at Function.__webpack_require__.e (/tmp/app/.next/server/webpack-runtime.js:102:67) at Array.map (<anonymous>) { code: 'MODULE_NOT_FOUND', requireStack: [ '/tmp/app/.next/server/webpack-runtime.js', '/tmp/app/.next/server/pages/_document.js', '/var/task/node_modules/next/dist/server/require.js', '/var/task/node_modules/next/dist/server/next-server.js', '/tmp/app/server.js' ] }
该应用本地运行正常,仅部署到Amplify后出现问题,已尝试以下操作但未解决:
- 创建新的NextJS应用重新部署
- 重新创建Amplify认证后端
- 在Amplify中创建独立的前后端生产环境
- 开启/关闭自定义域名配置
解决建议
- 对齐本地与Amplify的NextJS版本:检查Amplify构建环境中的NextJS版本是否和本地项目
package.json中指定的版本完全一致,版本差异可能导致webpack打包逻辑不同 - 清理Amplify构建缓存:在Amplify控制台的构建设置中,手动清理构建缓存后重新触发部署,避免旧缓存文件干扰
- 调整
next.config.js的webpack配置:添加配置确保server-side chunk正确生成,示例配置:module.exports = { webpack: (config, { isServer }) => { if (isServer) { config.output.chunkFilename = 'chunks/[name].js'; } return config; }, }; - 确认Amplify认证的SSR兼容配置:如果使用了SSR模式,确保Amplify认证的初始化代码在server组件中正确处理,避免在构建时产生缺失的chunk
- 检查环境变量配置:确保Amplify中设置的环境变量和本地一致,尤其是与OAuth相关的变量,错误的变量可能导致构建时路径解析异常
- 尝试静态导出模式:如果应用不依赖SSR功能,可以在
next.config.js中设置output: 'export',切换为静态站点部署,避免server-side chunk的生成问题
内容的提问来源于stack exchange,提问作者user21512754
相关产品推荐
相关产品推荐

