Neah/next.config.mjs
2025-04-17 11:39:15 +02:00

68 lines
1.5 KiB
JavaScript

let userConfig;
try {
userConfig = await import("./v0-user-next.config");
} catch (e) {
// ignore error
}
/** @type {import('next').NextConfig} */
const nextConfig = {
eslint: {
ignoreDuringBuilds: true,
},
typescript: {
ignoreBuildErrors: true,
},
images: {
unoptimized: true,
},
experimental: {
webpackBuildWorker: true,
parallelServerBuildTraces: true,
parallelServerCompiles: true,
},
// Load environment variables
env: {
IMAP_USER: process.env.IMAP_USER,
IMAP_PASSWORD: process.env.IMAP_PASSWORD,
IMAP_HOST: process.env.IMAP_HOST,
IMAP_PORT: process.env.IMAP_PORT,
},
// Ensure environment variables are available in API routes
serverRuntimeConfig: {
IMAP_USER: process.env.IMAP_USER,
IMAP_PASSWORD: process.env.IMAP_PASSWORD,
IMAP_HOST: process.env.IMAP_HOST,
IMAP_PORT: process.env.IMAP_PORT,
},
// Make environment variables available to the client
publicRuntimeConfig: {
IMAP_HOST: process.env.IMAP_HOST,
IMAP_PORT: process.env.IMAP_PORT,
}
};
mergeConfig(nextConfig, userConfig);
function mergeConfig(nextConfig, userConfig) {
if (!userConfig) {
return;
}
for (const key in userConfig) {
if (
typeof nextConfig[key] === "object" &&
!Array.isArray(nextConfig[key])
) {
nextConfig[key] = {
...nextConfig[key],
...userConfig[key],
};
} else {
nextConfig[key] = userConfig[key];
}
}
}
export default nextConfig;