const { withSentryConfig } = require('@sentry/nextjs') const createNextIntlPlugin = require('next-intl/plugin') const withNextIntl = createNextIntlPlugin('./src/i18n/request.ts') /** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: true, transpilePackages: ['@awoooi/lewooogo-core'], output: 'standalone', experimental: { typedRoutes: true, }, // CI/CD: ESLint 在獨立 lint job 執行,build 時跳過 eslint: { ignoreDuringBuilds: true, }, // CI/CD: TypeScript 錯誤在獨立 type-check job 處理 typescript: { ignoreBuildErrors: true, }, // Sprint 5: 舊路由暫不 redirect // 原因: 整合頁面用 lazy import 載入原始頁面,redirect 會造成循環 // 策略: 舊路由保持獨立可用,新路由是整合入口 // 未來: 統帥確認無問題後,可逐步加入 redirect } // Sentry 配置 (Self-Hosted @ 192.168.0.110) const sentryWebpackPluginOptions = { // 只在有 AUTH_TOKEN 時上傳 source maps silent: true, // 組織與專案 (Self-Hosted 設定) org: process.env.SENTRY_ORG || 'awoooi', project: process.env.SENTRY_PROJECT || 'awoooi-web', // 禁用自動 source map 上傳 (Self-Hosted 需手動配置) disableServerWebpackPlugin: !process.env.SENTRY_AUTH_TOKEN, disableClientWebpackPlugin: !process.env.SENTRY_AUTH_TOKEN, } // 組合: next-intl → sentry module.exports = withSentryConfig(withNextIntl(nextConfig), sentryWebpackPluginOptions)