fix(build): 避免 CI prerender 阶段因 DATABASE_URL 未设置导致抛出错误
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m57s
构建并部署 BYW VoiceHub / 镜像构建·预热(与 Preflight 并发:系统/镜像源/Builder 初始化) (push) Successful in 4m19s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Failing after 1s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Skipped

This commit is contained in:
2026-09-13 13:26:38 +08:00
parent bdefc105bf
commit 16f0b1f6b5
2 changed files with 6 additions and 7 deletions
+4 -5
View File
@@ -10,13 +10,12 @@ import {fileURLToPath} from 'url';
config({ path: path.resolve(process.cwd(), '.env') }); config({ path: path.resolve(process.cwd(), '.env') });
// 检查环境变量 // 检查环境变量
if (!process.env.DATABASE_URL) { // 注意:在 CI/Nuxt prerender 构建阶段,可能没有 DATABASE_URL
throw new Error('DATABASE_URL environment variable is not set'); const connectionString = process.env.DATABASE_URL || 'postgresql://postgres:dummy@localhost:5432/dummy';
if (!process.env.DATABASE_URL && !process.env.npm_lifecycle_script?.includes('build')) {
console.warn('Warning: DATABASE_URL environment variable is not set. Using dummy connection string for build/prerender.');
} }
// 创建PostgreSQL连接
const connectionString = process.env.DATABASE_URL;
// 检测数据库类型 // 检测数据库类型
const isNeonDatabase = connectionString.includes('neon.tech') || connectionString.includes('neon.database.com'); const isNeonDatabase = connectionString.includes('neon.tech') || connectionString.includes('neon.database.com');
+2 -2
View File
@@ -285,10 +285,10 @@ export default defineNuxtConfig({
: process.env.NETLIFY : process.env.NETLIFY
? 'netlify' ? 'netlify'
: process.env.NITRO_PRESET || 'node-server', : process.env.NITRO_PRESET || 'node-server',
// 明确关闭 prerender / 爬取链接,避免 Node 端不必要的预渲染浪费内存 // 明确关闭 prerender / 爬取链接,避免 Node 端不必要的预渲染浪费内存和依赖数据库环境
prerender: { prerender: {
crawlLinks: false, crawlLinks: false,
routes: ['/', '/login'] routes: []
}, },
minify: true, minify: true,
sourceMap: false, sourceMap: false,