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

NextJS 13应用构建触发类型错误,开发环境正常如何修复?

NextJS 13 App Router构建时NextAuth路由类型错误解决方案

在NextJS 13 App Router项目中,开发环境下NextAuth认证路由正常运行,但执行构建时出现类型错误,报错文件为app/api/auth/[...nextauth]/route.ts,错误核心是导出的authOptions不符合路由模块的类型约束,提示Type 'AuthOptions' is not assignable to type 'never'。

问题原因

App Router对路由文件的导出内容有严格限制:仅允许导出HTTP方法处理函数(如GET、POST)和特定路由配置项(如config),任何额外的导出变量都会触发构建时的类型检查错误,开发环境的类型校验相对宽松,因此不会报错。

解决方案

将authOptions从路由文件中分离到单独的模块中,避免在路由文件里导出它:

  1. 创建单独的认证配置文件,比如app/lib/auth.ts:
import { AuthOptions } from "next-auth";
import GoogleProvider from "next-auth/providers/google";

export const authOptions: AuthOptions = {
    providers: [
        GoogleProvider({
            clientId: process.env.GOOGLE_ID as string,
            clientSecret: process.env.GOOGLE_SECRET as string,
        }),
    ],
};
  1. 修改路由文件app/api/auth/[...nextauth]/route.ts,导入外部的authOptions:
import NextAuth from "next-auth";
import { authOptions } from "@/app/lib/auth";

const handler = NextAuth(authOptions);

export { handler as GET, handler as POST };

验证

重新执行构建命令,类型错误会消失。后续如果需要在其他地方使用authOptions(比如服务器组件中获取会话),也可以直接从app/lib/auth.ts导入,无需重复定义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 05:25:17