Reactive-Resume/client/next.config.js

64 lines
1.6 KiB
JavaScript

const { version } = require('../package.json');
const { i18n } = require('./next-i18next.config');
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
i18n,
env: {
appVersion: version,
},
images: {
domains: ['cdn.rxresu.me', 'www.gravatar.com'],
},
async rewrites() {
if (process.env.NODE_ENV === 'development') {
return [
{
source: '/api/:path*',
destination: 'http://localhost:3100/:path*',
},
];
}
return [];
},
// Hack to make Tailwind darkMode 'class' strategy with CSS Modules
// Ref: https://github.com/tailwindlabs/tailwindcss/issues/3258#issuecomment-968368156
webpack: (config) => {
const rules = config.module.rules.find((r) => !!r.oneOf);
rules.oneOf.forEach((loaders) => {
if (Array.isArray(loaders.use)) {
loaders.use.forEach((l) => {
if (typeof l !== 'string' && typeof l.loader === 'string' && /(?<!post)css-loader/.test(l.loader)) {
if (!l.options.modules) return;
const { getLocalIdent, ...others } = l.options.modules;
l.options = {
...l.options,
modules: {
...others,
getLocalIdent: (ctx, localIdentName, localName, options) => {
if (localName === 'dark') return localName;
return getLocalIdent(ctx, localIdentName, localName, options);
},
},
};
}
});
}
});
return config;
},
};
module.exports = nextConfig;