Next.js:Github Actions执行构建导出时未生成Out文件夹求助
确认next.config.js的静态导出配置
Next.js 13.4+ 启用App Router时,必须在next.config.js中添加output: 'export'配置,才能让next export生成out文件夹。如果本地配置了该项但未提交到仓库,Github Actions环境会缺失配置,导致导出失败。配置示例:/** @type {import('next').NextConfig} */ const nextConfig = { output: 'export', // 其他项目配置 } module.exports = nextConfig检查Actions日志与package.json脚本配置
查看Github Actions中npm run build的完整输出日志(注意展开折叠的日志段),确认next export步骤是否实际执行。同时检查项目根目录的package.json,确保build脚本配置正确:"scripts": { "build": "next build && next export", // 其他脚本 }避免拼写错误或脚本逻辑错误导致export步骤被跳过。
升级Node.js版本与Actions依赖
Next.js 13.4.5推荐使用Node.js 18+ LTS版本,当前Actions中使用的Node.js 16可能存在兼容性问题。同时升级setup-nodeAction到最新版本,优化依赖安装:- name: Set up Node.js uses: actions/setup-node@v4 with: node-version: 18 cache: 'npm'验证依赖安装完整性
npm ci会严格按照package-lock.json安装依赖,如果仓库中的lock文件与package.json不一致,可能导致依赖缺失。可以尝试在Actions中替换为npm install,或在本地执行npm install更新lock文件后提交到仓库。检查环境变量与条件性导出逻辑
如果项目代码中存在根据环境变量控制导出的逻辑,需在Actions的build步骤中配置对应环境变量,确保导出逻辑正常触发:- name: Build Next.js app run: npm run build env: NODE_ENV: production # 项目所需其他环境变量
内容的提问来源于stack exchange,提问作者arengit

