/** @type {import('next').NextConfig} */ const CopyPlugin = require('copy-webpack-plugin'); const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin'); const path = require('path'); const nextConfig = { experimental: { esmExternals: 'loose', }, typescript: { ignoreBuildErrors: true, }, env: { API_BASE_URL: process.env.API_BASE_URL, GITHUB_CLIENT_ID: process.env.GITHUB_CLIENT_ID, GOOGLE_CLIENT_ID: process.env.GOOGLE_CLIENT_ID, GET_USER_URL: process.env.GET_USER_URL, LOGIN_URL: process.env.LOGIN_URL, LOGOUT_URL: process.env.LOGOUT_URL, }, trailingSlash: true, images: { unoptimized: true }, skipTrailingSlashRedirect: true, webpack: (config, { isServer }) => { config.resolve.fallback = { fs: false }; if (!isServer) { config.plugins.push( new CopyPlugin({ patterns: [ { from: path.join(__dirname, 'node_modules/@oceanbase-odc/monaco-plugin-ob/worker-dist/'), to: 'static/ob-workers', }, ], }), ); // 添加 monaco-editor-webpack-plugin 插件 config.plugins.push( new MonacoWebpackPlugin({ // 你可以在这里配置插件的选项,例如: languages: ['sql'], filename: 'static/[name].worker.js', }), ); } return config; }, }; const withTM = require('next-transpile-modules')([ '@berryv/g2-react', '@antv/g2', 'react-syntax-highlighter', '@antv/gpt-vis', ]); module.exports = withTM({ ...nextConfig, });