GPT
/
next.config.mjs
105 строк · 2.5 Кб
1import webpack from "webpack";2
3const mode = process.env.BUILD_MODE ?? "standalone";4console.log("[Next] build mode", mode);5
6const disableChunk = !!process.env.DISABLE_CHUNK || mode === "export";7console.log("[Next] build with chunk: ", !disableChunk);8
9/** @type {import('next').NextConfig} */
10const nextConfig = {11webpack(config) {12config.module.rules.push({13test: /\.svg$/,14use: ["@svgr/webpack"],15});16
17if (disableChunk) {18config.plugins.push(19new webpack.optimize.LimitChunkCountPlugin({ maxChunks: 1 }),20);21}22
23config.resolve.fallback = {24child_process: false,25};26
27return config;28},29output: mode,30images: {31unoptimized: mode === "export",32},33experimental: {34forceSwcTransforms: true,35},36};37
38const CorsHeaders = [39{ key: "Access-Control-Allow-Credentials", value: "true" },40{ key: "Access-Control-Allow-Origin", value: "*" },41{42key: "Access-Control-Allow-Methods",43value: "*",44},45{46key: "Access-Control-Allow-Headers",47value: "*",48},49{50key: "Access-Control-Max-Age",51value: "86400",52},53];54
55if (mode !== "export") {56nextConfig.headers = async () => {57return [58{59source: "/api/:path*",60headers: CorsHeaders,61},62];63};64
65nextConfig.rewrites = async () => {66const ret = [67// adjust for previous version directly using "/api/proxy/" as proxy base route68// {69// source: "/api/proxy/v1/:path*",70// destination: "https://api.openai.com/v1/:path*",71// },72{73// https://{resource_name}.openai.azure.com/openai/deployments/{deploy_name}/chat/completions74source: "/api/proxy/azure/:resource_name/deployments/:deploy_name/:path*",75destination: "https://:resource_name.openai.azure.com/openai/deployments/:deploy_name/:path*",76},77{78source: "/api/proxy/google/:path*",79destination: "https://generativelanguage.googleapis.com/:path*",80},81{82source: "/api/proxy/openai/:path*",83destination: "https://api.openai.com/:path*",84},85{86source: "/api/proxy/anthropic/:path*",87destination: "https://api.anthropic.com/:path*",88},89{90source: "/google-fonts/:path*",91destination: "https://fonts.googleapis.com/:path*",92},93{94source: "/sharegpt",95destination: "https://sharegpt.com/api/conversations",96},97];98
99return {100beforeFiles: ret,101};102};103}
104
105export default nextConfig;106