93 lines
3.1 KiB
TypeScript
93 lines
3.1 KiB
TypeScript
import { withSentryConfig } from "@sentry/nextjs";
|
||
import type { NextConfig } from "next";
|
||
import { withSerwist } from "@serwist/turbopack";
|
||
|
||
/**
|
||
* Next.js 16 临时绕过 `/_global-error` prerender 的 workStore bug
|
||
* 标记根 layout 不参与静态预渲染(global-error 会在请求时渲染)
|
||
* https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config
|
||
*
|
||
* 默认部署模型:`.next/` + `public/` + `next start`(或 Vercel 零配置)
|
||
* - `pnpm build` 产出 .next/(含 build manifest / chunks / 路由表 / 静态预渲染)
|
||
* - 脚本侧:scripts/deploy/_deploy_lib.sh 同步 .next/ + public/
|
||
* - 服务器启动:`cd <path> && next start -H 0.0.0.0 -p 3000`
|
||
* 或用 PM2:`pm2 start "next start" --name cozsweet`
|
||
*/
|
||
const nextConfig: NextConfig = {
|
||
experimental: {
|
||
// 关闭静态优化以规避 16.2.7 global-error prerender bug
|
||
staticGenerationRetryCount: 0,
|
||
},
|
||
images: {
|
||
remotePatterns: [
|
||
{
|
||
protocol: "https",
|
||
hostname: "platform-lookaside.fbsbx.com",
|
||
},
|
||
{
|
||
protocol: "https",
|
||
hostname: "graph.facebook.com",
|
||
},
|
||
{
|
||
protocol: "https",
|
||
hostname: "**.supabase.co",
|
||
pathname: "/storage/v1/object/public/**",
|
||
},
|
||
{
|
||
protocol: "https",
|
||
hostname: "free.picui.cn",
|
||
},
|
||
],
|
||
},
|
||
};
|
||
|
||
const shouldUploadSentrySourcemaps =
|
||
process.env.CI !== "true" || process.env.SENTRY_UPLOAD_SOURCEMAPS === "1";
|
||
|
||
export default withSentryConfig(withSerwist(nextConfig), {
|
||
// For all available options, see:
|
||
// https://www.npmjs.com/package/@sentry/webpack-plugin#options
|
||
|
||
org: "shenzhen-banlv-zhidao-technolo",
|
||
|
||
project: "javascript-nextjs",
|
||
|
||
// Only print logs for uploading source maps in CI
|
||
silent: !process.env.CI,
|
||
|
||
// Keep build metadata local; application errors/performance are configured separately.
|
||
telemetry: false,
|
||
|
||
// For all available options, see:
|
||
// https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/
|
||
|
||
// Upload a larger set of source maps for prettier stack traces (increases build time)
|
||
widenClientFileUpload: true,
|
||
|
||
// PR/branch CI should validate builds without uploading source maps. Release jobs can
|
||
// set SENTRY_UPLOAD_SOURCEMAPS=1 to enable uploads explicitly.
|
||
sourcemaps: {
|
||
disable: !shouldUploadSentrySourcemaps,
|
||
},
|
||
|
||
// Uncomment to route browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers.
|
||
// This can increase your server load as well as your hosting bill.
|
||
// Note: Check that the configured route will not match with your Next.js middleware, otherwise reporting of client-
|
||
// side errors will fail.
|
||
// tunnelRoute: "/monitoring",
|
||
|
||
webpack: {
|
||
// Enables automatic instrumentation of Vercel Cron Monitors. (Does not yet work with App Router route handlers.)
|
||
// See the following for more information:
|
||
// https://docs.sentry.io/product/crons/
|
||
// https://vercel.com/docs/cron-jobs
|
||
automaticVercelMonitors: true,
|
||
|
||
// Tree-shaking options for reducing bundle size
|
||
treeshake: {
|
||
// Automatically tree-shake Sentry logger statements to reduce bundle size
|
||
removeDebugLogging: true,
|
||
},
|
||
},
|
||
});
|