123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- import webpack from "webpack";
- const mode = process.env.BUILD_MODE ?? "standalone";
- console.log("[Next] build mode", mode);
- const disableChunk = !!process.env.DISABLE_CHUNK || mode === "export";
- console.log("[Next] build with chunk: ", !disableChunk);
- const basePath = process.env.BASE_PATH ?? ''
- /** @type {import('next').NextConfig} */
- const nextConfig = {
- basePath: basePath,
- webpack(config) {
- config.module.rules.push({
- test: /\.svg$/,
- use: ["@svgr/webpack"],
- });
- if (disableChunk) {
- config.plugins.push(
- new webpack.optimize.LimitChunkCountPlugin({ maxChunks: 1 }),
- );
- }
- config.resolve.fallback = {
- child_process: false,
- };
- return config;
- },
- output: mode,
- images: {
- unoptimized: mode === "export",
- },
- experimental: {
- forceSwcTransforms: true,
- },
- };
- const CorsHeaders = [
- { key: "Access-Control-Allow-Credentials", value: "true" },
- { key: "Access-Control-Allow-Origin", value: "*" },
- {
- key: "Access-Control-Allow-Methods",
- value: "*",
- },
- {
- key: "Access-Control-Allow-Headers",
- value: "*",
- },
- {
- key: "Access-Control-Max-Age",
- value: "86400",
- },
- ];
- if (mode !== "export") {
- nextConfig.headers = async () => {
- return [
- {
- source: "/api/:path*",
- headers: CorsHeaders,
- },
- ];
- };
- nextConfig.rewrites = async () => {
- const ret = [
- {
- source: "/api/proxy/:path*",
- destination: "https://api.openai.com/:path*",
- },
- {
- source: "/google-fonts/:path*",
- destination: "https://fonts.googleapis.com/:path*",
- },
- {
- source: "/sharegpt",
- destination: "https://sharegpt.com/api/conversations",
- },
- ];
- return {
- beforeFiles: ret,
- };
- };
- }
- export default nextConfig;
|