const path = require('path'); const fs = require('fs'); const rehypePrism = require('@mapbox/rehype-prism'); /** * Loads the configuration for the given environment * @param env * @returns {*} */ const loadConfig = (env = 'dev') => { const configPath = `./config/${env}.json`; if (!fs.existsSync(configPath)) { console.warn(`Config file not found: ${configPath}. Using environment variables only.`); } const appConfig = {}; for (let key in process.env) { if (!key.startsWith('ROADMAP_')) { continue; } appConfig[key.replace('ROADMAP_', '')] = process.env[key]; } return appConfig; }; const withMDX = require('@next/mdx')({ extension: /\.(md|mdx)?$/, options: { rehypePlugins: [rehypePrism] } }); let nextConfig = { reactStrictMode: true, poweredByHeader: false, env: loadConfig(process.env.NODE_ENV), webpack(config, options) { config.resolve.modules.push(path.resolve('./')); // Transforms SVGs to components config.module.rules.push({ test: /\.svg$/, use: ['@svgr/webpack'] }); return config; }, async redirects() { return [ { source: '/node.js', destination: '/nodejs', permanent: true, }, ] }, }; nextConfig = withMDX(nextConfig); module.exports = nextConfig;