59 lines
1.4 KiB
JavaScript
59 lines
1.4 KiB
JavaScript
const path = require('path')
|
|
const { i18n } = require("./next-i18next.config");
|
|
const withBundleAnalyzer = require('@next/bundle-analyzer');
|
|
|
|
/** @type {import('next').NextConfig} */
|
|
const nextConfig = {
|
|
// i18n,
|
|
reactStrictMode: true,
|
|
trailingSlash: true,
|
|
swcMinify: true,
|
|
cleanDistDir: true,
|
|
pageExtensions: ['js', 'jsx', 'mdx', 'ts', 'tsx'],
|
|
// pageExtensions: ["tsx", "mdx", "ts", "js"],
|
|
productionBrowserSourceMaps: true,
|
|
// we're open-source anyways
|
|
experimental: {
|
|
esmExternals: "loose",
|
|
},
|
|
compiler: {
|
|
removeConsole: false, // 保留所有模式中的 console.log
|
|
//removeConsole: process.env.NODE_ENV === 'production' ? { exclude: ['error'] } : false, // ✅ 用 NODE_ENV
|
|
emotion: true,
|
|
},
|
|
webpack: (config, { isServer }) => {
|
|
config.cache = Object.freeze({
|
|
type: "memory",
|
|
});
|
|
|
|
return config;
|
|
},
|
|
eslint: {
|
|
// Warning: This allows production builds to successfully complete even if
|
|
// your project has ESLint errors.
|
|
ignoreDuringBuilds: true,
|
|
},
|
|
experimental: {
|
|
esmExternals: true,
|
|
},
|
|
images: {
|
|
remotePatterns: [
|
|
{
|
|
protocol: 'https',
|
|
hostname: 'avatars.githubusercontent.com'
|
|
}
|
|
]
|
|
},
|
|
|
|
sassOptions: {
|
|
includePaths: [path.join(__dirname, 'styles')],
|
|
},
|
|
|
|
|
|
}
|
|
|
|
// module.exports = nextConfig
|
|
module.exports = withBundleAnalyzer({
|
|
enabled: process.env.ANALYZE === 'true',
|
|
})(nextConfig);
|