Next.js构建报错:revalidate处不支持ConditionalExpression节点类型
Next.js build报错:Unsupported node type "ConditionalExpression" at "revalidate"(无config导出场景)
执行npm run build时触发错误:
⨯ Next.js can't recognize the exported `config` field in route "/dashboard/page": Unsupported node type "ConditionalExpression" at "revalidate". Read More - https://nextjs.org/docs/messages/invalid-page-config
但/dashboard/page.js文件未导出任何config字段,文件内容如下:
import prisma from "@/lib/db"; import CategoriesDashboardComponent from "./CategoryDashboardComponent"; const CategoriesDashboard = async () => { const data = await prisma.category.findMany({ orderBy: { name: "asc", }, }); return ( <div className="container p-4"> <CategoriesDashboardComponent initialData={data} /> </div> ); }; export default CategoriesDashboard;
已尝试操作:
- 删除
node_modules并重新安装依赖 - 检查目标文件的
config导出
环境信息:
- Next.js版本:15.0.3
- Node.js版本:v20.11.0
- 操作系统:Windows 11
解决建议
- 检查路由目录的父级布局/页面:比如
/dashboard/layout.js或更上层的layout.js、page.js,是否存在导出revalidate时使用条件表达式的情况(例如export const revalidate = process.env.NODE_ENV === 'prod' ? 3600 : 0),Next.js 15对配置中的动态表达式支持有限,需改为静态值或用其他方式实现逻辑。 - 排查组件依赖的隐式配置:检查
CategoriesDashboardComponent及其依赖文件,是否有导出包含条件表达式的config字段——Next.js会扫描路由树下所有文件的导出内容。 - 清除Next.js构建缓存:执行
npx next clean后重新构建,避免缓存的旧配置干扰。 - 检查
next.config.js:确认是否存在针对该路由的特殊实验性配置,部分experimental选项可能影响路由解析逻辑。 - 临时降级Next.js版本:若为15.0.3版本的bug,可尝试降级至15.0.2或稳定的14.x版本,验证问题是否消失。
内容的提问来源于stack exchange,提问作者Luzzitto Tupaz
相关产品推荐
相关产品推荐

