我的 Next.js 13 应用程序在 Vercel 上遇到部署问题。我试图将 Next 的并行路由功能添加到我的应用程序中。当我推送代码以在应用程序的 GitHub 存储库上发出新的拉取请求时,我的分支的 Vercel 部署成功完成,但遇到 500 错误。检查 Vercel 日志后,我发现以下错误消息:
Error: Cannot find module '/var/task/.next/server/app/@landing/page.js' Require stack: - /var/task/node_modules/next/dist/server/require.js - /var/task/node_modules/next/dist/server/next-server.js - /var/task/___next_launcher.cjs at Module._resolveFilename (node:internal/modules/cjs/loader:1075:15) at mod._resolveFilename (/var/task/node_modules/next/dist/build/webpack/require-hook.js:23:32) at Module._load (node:internal/modules/cjs/loader:920:27) at Module.require (node:internal/modules/cjs/loader:1141:19) at require (node:internal/modules/cjs/helpers:110:18) at Object.requirePage (/var/task/node_modules/next/dist/server/require.js:88:12) at /var/task/node_modules/next/dist/server/load-components.js:49:73 at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async Object.loadComponentsImpl [as loadComponents] (/var/task/node_modules/next/dist/server/load-components.js:49:26) at async NextNodeServer.findPageComponentsImpl (/var/task/node_modules/next/dist/server/next-server.js:600:36) { code: 'MODULE_NOT_FOUND', requireStack: [ '/var/task/node_modules/next/dist/server/require.js', '/var/task/node_modules/next/dist/server/next-server.js', '/var/task/___next_launcher.cjs' ], page: '/' } RequestId: 74d89b96-1db2-4832-a673-a834c04d20ba Error: Runtime exited with error: exit status 1 Runtime.ExitError
部署过程中似乎找不到需要的模块/var/task/.next/server/app/@landing/page.js
。
这是 @landing 文件夹内 page.jsx
文件的内容:
import Link from 'next/link'; import Button from '@/components/Button'; import NavbarIcon from '@/components/NavbarIcons'; const LandingPage = () => { return ( <main className="w-screen flex flex-col scrollbar-hide bg-white"> <header className="w-full px-6 py-2 flex items-center drop-shadow-md"> <nav className="w-full flex items-center"> <ul className="w-full flex justify-between items-center drop-shadow-md"> <li> <Link href={'/'}> <NavbarIcon icon='logo' /> </Link> </li> <li> <ul className='flex gap-4'> <li> <Link href={'/auth/login'}> <Button bgColor="primary" isSolid={true}> Iniciar Sesión </Button> </Link> </li> <li> <Link href={'/auth/register'}> <Button bgColor="primary" isSolid={false}> Crear Cuenta </Button> </Link> </li> </ul> </li> </ul> </nav> </header> <article className="w-full h-screen"></article> <article className="w-full h-screen"></article> <article className="w-full h-screen"></article> <article className="w-full h-screen"></article> </main> ); }; export default LandingPage;
这是layout.jsx
文件的内容:
import './globals.css'; import { cookies } from 'next/headers'; import Providers from './ReduxContext/provider'; import Navbar from '@/components/Navbar'; export const metadata = { title: 'Schedulo', description: 'Improve the way to contact services in our city.', }; export default function RootLayout({ children, landing }) { //One way to handle session data is with next 'cookies' function, which use is similar to 'document.coockie' //We can choice to use other methods mor specific in future to handle users and auths, like firebase hooks. const coockieList = cookies(); return ( <html> <head /> <body> <Providers> <> {coockieList.has('userToken') ? ( <main className="relative w-screen max-w-[100vw] h-screen md:h-fit bg-white flex flex-col-reverse md:flex-row"> <Navbar /> {children} </main> ) : ( landing )} </> </Providers> </body> </html> ); }
这是我的 next.config.js
文件:
/** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: true, experimental: { appDir: true, }, }; module.exports = nextConfig;
以下是有关我的设置的一些其他详细信息:
Next.js 版本:13.12.4 部署平台:Vercel 存储库:GitHub
我已经尝试过以下操作:
如果您能提供有关如何解决此问题的见解或建议,我将不胜感激。预先感谢您的帮助!
P粉0630399902023-12-28 00:19:20
这可能是因为您使用的是导出默认值,而不是使用推荐的下一个文档。
在他们的页面中推荐导出如下:
export default function Page(){ return ( ... ) }