Next.js 15部署AWS Lambda报Cannot find module './bundle5'求助
Next.js 15.0.2部署AWS Lambda时缺失bundle5模块问题
环境信息
- Next.js: 15.0.2
- Node.js: 18
- 部署方式:将Next.js应用部署至AWS Lambda,已在
next.config.ts中设置output: 'standalone',并编写handler函数适配Lambda环境
错误信息
部署后持续出现以下错误:
Error: Cannot find module './bundle5' Require stack: - /var/task/standalone/node_modules/next/dist/compiled/webpack/webpack.js - /var/task/standalone/node_modules/next/dist/server/config-utils.js - /var/task/standalone/node_modules/next/dist/server/config.js - /var/task/standalone/node_modules/next/dist/server/next.js
相关代码
handler.js
const { createServer } = require('http'); const { parse } = require('url'); const path = require('path'); const next = require('next'); const app = next({ dev: false, dir: path.resolve(__dirname), }); const handle = app.getRequestHandler(); exports.handler = async (event, context) => { await app.prepare(); const server = createServer((req, res) => { const parsedUrl = parse(req.url, true); handle(req, res, parsedUrl); }); const port = process.env.PORT || 3000; server.listen(port, () => { console.log(`> Ready on http://localhost:${port}`); }); };
next.config.ts
import type { NextConfig } from "next"; const nextConfig: NextConfig = { output: "standalone", async rewrites() { return [ { source: '/css/:path*', destination: 'https://www.test.com/css/:path*', }, { source: '/amz/cart/:path*', destination: 'https://www.test.com/amz/cart/:path*', }, ]; }, typescript: { ignoreBuildErrors: false, }, eslint: { ignoreDuringBuilds: false, }, poweredByHeader: false, compress: true, }; export default nextConfig;
问题排查细节
调试发现,.next构建文件夹内的standalone目录下,node_modules/next/dist/compiled/webpack/webpack.js文件中存在对bundle5的引用,但该模块文件缺失。相关代码片段如下:
exports.__esModule = true exports.default = undefined exports.init = function () { if (process.env.NEXT_PRIVATE_LOCAL_WEBPACK) { Object.assign(exports, { // eslint-disable-next-line import/no-extraneous-dependencies BasicEvaluatedExpression: require('webpack/lib/javascript/BasicEvaluatedExpression'), // eslint-disable-next-line import/no-extraneous-dependencies ConcatenatedModule: require('webpack/lib/optimize/ConcatenatedModule'), // eslint-disable-next-line import/no-extraneous-dependencies makePathsAbsolute: require('webpack/lib/util/identifier') .makePathsAbsolute, // eslint-disable-next-line import/no-extraneous-dependencies ModuleFilenameHelpers: require('webpack/lib/ModuleFilenameHelpers'), // eslint-disable-next-line import/no-extraneous-dependencies NodeTargetPlugin: require('webpack/lib/node/NodeTargetPlugin'), // eslint-disable-next-line import/no-extraneous-dependencies RuntimeGlobals: require('webpack/lib/RuntimeGlobals'), // eslint-disable-next-line import/no-extraneous-dependencies SourceMapDevToolModuleOptionsPlugin: require('webpack/lib/SourceMapDevToolModuleOptionsPlugin'), // eslint-disable-next-line import/no-extraneous-dependencies StringXor: require('webpack/lib/util/StringXor'), // eslint-disable-next-line import/no-extraneous-dependencies NormalModule: require('webpack/lib/NormalModule'), // eslint-disable-next-line import/no-extraneous-dependencies sources: require('webpack').sources, // eslint-disable-next-line import/no-extraneous-dependencies webpack: require('webpack'), }) } else { Object.assign(exports, require('./bundle5')()) } }
寻求解决该模块缺失问题的方案。
内容的提问来源于stack exchange,提问作者Snehal
相关产品推荐
相关产品推荐

