Files
alla-tms/next.config.ts
2026-07-16 09:53:14 +07:00

75 lines
1.9 KiB
TypeScript

import type { NextConfig } from 'next';
import { withSentryConfig } from '@sentry/nextjs';
// Define the base Next.js configuration
const baseConfig: NextConfig = {
output: process.env.BUILD_STANDALONE === 'true' ? 'standalone' : undefined,
images: {
remotePatterns: [
{
protocol: 'https',
hostname: 'api.slingacademy.com',
port: ''
},
{
protocol: 'https',
hostname: 'placehold.co',
port: ''
},
{
protocol: 'https',
hostname: 'img.clerk.com',
port: ''
},
{
protocol: 'https',
hostname: 'clerk.com',
port: ''
}
]
},
transpilePackages: ['geist'],
compiler: {
removeConsole: process.env.NODE_ENV === 'production'
}
};
let configWithPlugins = baseConfig;
// Conditionally enable Sentry configuration
if (!process.env.NEXT_PUBLIC_SENTRY_DISABLED) {
configWithPlugins = withSentryConfig(configWithPlugins, {
org: process.env.NEXT_PUBLIC_SENTRY_ORG,
project: process.env.NEXT_PUBLIC_SENTRY_PROJECT,
// Only print logs for uploading source maps in CI
silent: !process.env.CI,
// Upload a larger set of source maps for prettier stack traces (increases build time)
widenClientFileUpload: true,
// Route browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers.
tunnelRoute: '/monitoring',
// Disable Sentry telemetry
telemetry: false,
// Sentry v10: moved under webpack namespace
webpack: {
reactComponentAnnotation: {
enabled: true
},
treeshake: {
removeDebugLogging: true
}
},
// Disable source map upload when org/project are not configured
sourcemaps: {
disable: !process.env.NEXT_PUBLIC_SENTRY_ORG || !process.env.NEXT_PUBLIC_SENTRY_PROJECT
}
});
}
const nextConfig = configWithPlugins;
export default nextConfig;