postio / apps /frontend /next.config.js
Leon4gr45's picture
Upload apps/frontend/next.config.js with huggingface_hub
9fb82b3 verified
Raw
History Blame Contribute Delete
2.92 kB
// @ts-check
import { withSentryConfig } from '@sentry/nextjs';
/** @type {import('next').NextConfig} */
const nextConfig = {
experimental: {
proxyTimeout: 90_000,
},
// Document-Policy header for browser profiling
async headers() {
return [
{
source: '/:path*',
headers: [
{
key: 'Document-Policy',
value: 'js-profiling',
},
],
},
];
},
reactStrictMode: false,
transpilePackages: ['crypto-hash'],
// Enable production sourcemaps for Sentry only if token is present
productionBrowserSourceMaps: !!process.env.SENTRY_AUTH_TOKEN,
// Custom webpack config to ensure sourcemaps are generated properly
webpack: (config, { buildId, dev, isServer, defaultLoaders }) => {
// Enable sourcemaps for both client and server in production
if (!dev && process.env.SENTRY_AUTH_TOKEN) {
config.devtool = isServer ? 'source-map' : 'hidden-source-map';
}
return config;
},
async redirects() {
return [
{
source: '/api/uploads/:path*',
destination:
process.env.STORAGE_PROVIDER === 'local' ? '/uploads/:path*' : '/404',
permanent: true,
},
];
},
async rewrites() {
return [
{
source: '/uploads/:path*',
destination:
process.env.STORAGE_PROVIDER === 'local'
? '/api/uploads/:path*'
: '/404',
},
];
},
};
export default withSentryConfig(nextConfig, {
org: process.env.SENTRY_ORG,
project: process.env.SENTRY_PROJECT,
authToken: process.env.SENTRY_AUTH_TOKEN,
// Sourcemap configuration optimized for monorepo
sourcemaps: {
disable: !process.env.SENTRY_AUTH_TOKEN,
// More comprehensive asset patterns for monorepo
assets: [
'.next/static/**/*.js',
'.next/static/**/*.js.map',
'.next/server/**/*.js',
'.next/server/**/*.js.map',
],
ignore: [
'**/node_modules/**',
'**/*hot-update*',
'**/_buildManifest.js',
'**/_ssgManifest.js',
'**/*.test.js',
'**/*.spec.js',
],
deleteSourcemapsAfterUpload: true,
},
// Release configuration
release: {
create: !!process.env.SENTRY_AUTH_TOKEN,
finalize: !!process.env.SENTRY_AUTH_TOKEN,
// Use git commit hash for releases in monorepo
name:
process.env.VERCEL_GIT_COMMIT_SHA || process.env.GITHUB_SHA || undefined,
},
// NextJS specific optimizations for monorepo
widenClientFileUpload: true,
// Additional configuration
telemetry: false,
silent: true,
debug: false,
// Error handling for CI/CD
errorHandler: (error) => {
console.warn('Sentry build error occurred:', error.message);
console.warn(
'This might be due to missing Sentry environment variables or network issues'
);
// Don't fail the build if Sentry upload fails in monorepo context
return;
},
});