feat: integrate Sentry for error monitoring in Next.js application

- Added Sentry configuration for edge features in `sentry.edge.config.ts`
- Added Sentry configuration for server-side in `sentry.server.config.ts`
- Created a sample API route to demonstrate error tracking in `src/app/api/sentry-example-api/route.ts`
- Developed a frontend page to trigger and log errors in `src/app/sentry-example-page/page.tsx`
- Configured client-side Sentry initialization in `src/instrumentation-client.ts` with Replay integration
- Implemented instrumentation registration logic in `src/instrumentation.ts`
This commit is contained in:
2026-06-26 12:48:29 +08:00
parent 09cbd54c79
commit 7dde951306
10 changed files with 1653 additions and 22 deletions
+38 -1
View File
@@ -1,3 +1,4 @@
import { withSentryConfig } from "@sentry/nextjs";
import type { NextConfig } from "next";
import { withSerwist } from "@serwist/turbopack";
@@ -40,4 +41,40 @@ const nextConfig: NextConfig = {
},
};
export default withSerwist(nextConfig);
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,
// 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,
// 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,
},
},
});