44 lines
1.0 KiB
TypeScript
44 lines
1.0 KiB
TypeScript
import type { NextConfig } from 'next';
|
||
import fs from 'fs';
|
||
import path from 'path';
|
||
import dotenv from 'dotenv';
|
||
|
||
// 加载 .env 到 process.env(内部会用 dotenv.populate 注入)
|
||
dotenv.config({ path: '.env', override: true });
|
||
|
||
let projectId = '';
|
||
// 尝试从根目录 .project 读取 project_id / user_id 注入到环境变量
|
||
try {
|
||
const projectPath = path.join(process.cwd(), '.project');
|
||
const raw = fs.readFileSync(projectPath, 'utf8');
|
||
const data = JSON.parse(raw) as {
|
||
project_id?: string;
|
||
};
|
||
|
||
// 直接复用 dotenv.populate,把 .project 内容也注入到 process.env
|
||
projectId = data?.project_id ?? '';
|
||
} catch {
|
||
// 没有 .project 或解析失败时静默忽略,保持兼容
|
||
}
|
||
|
||
const nextConfig: NextConfig = {
|
||
reactStrictMode: false,
|
||
turbopack: {},
|
||
typescript: {
|
||
ignoreBuildErrors: true,
|
||
},
|
||
env: {
|
||
PROJECT_ID: projectId,
|
||
},
|
||
serverExternalPackages: [
|
||
'discord.js',
|
||
'@discordjs/ws',
|
||
'@discordjs/rest',
|
||
'dingtalk-stream',
|
||
'ws',
|
||
],
|
||
};
|
||
|
||
export default nextConfig;
|
||
|