44 lines
1.4 KiB
JavaScript
44 lines
1.4 KiB
JavaScript
const envVar = require('env-var')
|
|
const isBuildStage = envVar.get('IS_BUILD_STAGE').default('false').asBool()
|
|
|
|
/** @type {import('next').NextConfig} */
|
|
const nextConfig = {
|
|
reactStrictMode: true,
|
|
basePath: '/factorio',
|
|
swcMinify: true,
|
|
/** @type {import('next/config').ServerRuntimeConfig} */
|
|
serverRuntimeConfig: {
|
|
MONGO_URL: envVar.get('MONGO_URL').required(!isBuildStage).asUrlString(),
|
|
MONGO_DB: envVar.get('MONGO_DB').required(!isBuildStage).asString(),
|
|
MONGO_USER: envVar.get('MONGO_USER').required(!isBuildStage).asString(),
|
|
MONGO_PASS: envVar.get('MONGO_PASS').required(!isBuildStage).asString()
|
|
},
|
|
publicRuntimeConfig: {
|
|
TENANT_TYPE: envVar.get('TENANT_TYPE').required(!isBuildStage).asString(),
|
|
NODE_ENV: envVar.get('NODE_ENV').asString()
|
|
},
|
|
i18n: {
|
|
locales: ['en', 'de', 'nl'],
|
|
defaultLocale: 'en',
|
|
localeDetection: false
|
|
},
|
|
webpack: config => {
|
|
config.module?.rules?.forEach(rule => {
|
|
rule.oneOf?.forEach(oneOf => {
|
|
const loader = oneOf?.use
|
|
if (!loader || !Array.isArray(loader)) return
|
|
loader.forEach(l => {
|
|
if (l.loader?.includes('/css-loader') && l.options.modules) {
|
|
// mde-ui needs camelCase as well as BEM, so preserve both
|
|
l.options.modules.exportLocalsConvention = 'camelCase'
|
|
}
|
|
})
|
|
})
|
|
})
|
|
|
|
return config
|
|
}
|
|
}
|
|
|
|
module.exports = nextConfig
|