为何我的Next.js项目在GitHub Actions构建时出错?
问题分析与解决方案
从你提供的配置文件来看,构建失败的核心原因是配置冲突加Node.js版本兼容性问题:
1. Next.js编译目录与导出命令不匹配
你在next.config.js里设置了distDir: 'build',这会让next build把编译产物输出到build文件夹,但默认的next export会去读取默认的.next文件夹生成静态文件到out。两者路径不匹配,导致导出命令找不到编译资源直接报错。
修复方法(二选一):
- 移除自定义编译目录:删掉
next.config.js里的distDir: 'build'配置,让next build产物回到默认的.next文件夹,这样next export就能正常读取并生成out目录。 - 指定导出命令的读取目录:如果要保留
distDir: 'build',修改npm run export命令,加上--dir build参数,告诉Next.js从build文件夹读取编译产物。比如在GitHub Actions步骤里改成:
或者在- run: next export --dir buildpackage.json的scripts里调整:"export": "next export --dir build"
2. Node.js版本过旧
你使用的Node.js 14.x已经结束官方支持,Next.js 13及以上版本要求Node.js至少16.8.x。旧版本会引发依赖安装失败、编译语法不兼容等问题。
修复方法:
修改GitHub Actions配置里的node-version为16.x或更高版本:
node-version: [16.x] # 可选18.x、20.x,推荐LTS版本
3. 额外检查点
确保package.json的脚本配置正确:
{ "scripts": { "build": "next build", "export": "next export" } }
完成以上修改后重新提交代码,触发GitHub Actions即可解决构建错误。
内容的提问来源于stack exchange,提问作者Eduard
相关产品推荐
相关产品推荐

