2023-05-30 10:32:26 +08:00
|
|
|
const { withSentryConfig } = require('@sentry/nextjs')
|
2023-05-29 11:38:24 +08:00
|
|
|
|
2023-05-30 15:09:25 +08:00
|
|
|
const isDevelopment = process.env.NODE_ENV === 'development'
|
2023-06-06 10:29:38 +08:00
|
|
|
const SENTRY_DSN = process.env.NEXT_PUBLIC_SENTRY_DSN
|
|
|
|
const SENTRY_ORG = process.env.NEXT_PUBLIC_SENTRY_ORG
|
|
|
|
const SENTRY_PROJECT = process.env.NEXT_PUBLIC_SENTRY_PROJECT
|
|
|
|
const isHideSentry = isDevelopment || !SENTRY_DSN || !SENTRY_ORG || !SENTRY_PROJECT
|
2023-05-30 15:09:25 +08:00
|
|
|
|
2023-05-15 08:51:32 +08:00
|
|
|
const withMDX = require('@next/mdx')({
|
|
|
|
extension: /\.mdx?$/,
|
|
|
|
options: {
|
|
|
|
// If you use remark-gfm, you'll need to use next.config.mjs
|
|
|
|
// as the package is ESM only
|
|
|
|
// https://github.com/remarkjs/remark-gfm#install
|
|
|
|
remarkPlugins: [],
|
|
|
|
rehypePlugins: [],
|
|
|
|
// If you use `MDXProvider`, uncomment the following line.
|
|
|
|
// providerImportSource: "@mdx-js/react",
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
/** @type {import('next').NextConfig} */
|
|
|
|
const nextConfig = {
|
|
|
|
productionBrowserSourceMaps: false, // enable browser source map generation during the production build
|
|
|
|
// Configure pageExtensions to include md and mdx
|
|
|
|
pageExtensions: ['ts', 'tsx', 'js', 'jsx', 'md', 'mdx'],
|
|
|
|
experimental: {
|
|
|
|
appDir: true,
|
|
|
|
},
|
|
|
|
// fix all before production. Now it slow the develop speed.
|
|
|
|
eslint: {
|
|
|
|
// Warning: This allows production builds to successfully complete even if
|
|
|
|
// your project has ESLint errors.
|
|
|
|
ignoreDuringBuilds: true,
|
|
|
|
},
|
|
|
|
typescript: {
|
|
|
|
// https://nextjs.org/docs/api-reference/next.config.js/ignoring-typescript-errors
|
|
|
|
ignoreBuildErrors: true,
|
|
|
|
},
|
|
|
|
async redirects() {
|
|
|
|
return [
|
|
|
|
{
|
|
|
|
source: '/',
|
|
|
|
destination: '/apps',
|
|
|
|
permanent: false,
|
|
|
|
},
|
|
|
|
]
|
|
|
|
},
|
2023-05-30 15:09:25 +08:00
|
|
|
...(isHideSentry
|
|
|
|
? {}
|
|
|
|
: {
|
|
|
|
sentry: {
|
|
|
|
hideSourceMaps: true,
|
|
|
|
},
|
|
|
|
}),
|
2023-05-15 08:51:32 +08:00
|
|
|
}
|
|
|
|
|
2023-05-29 11:38:24 +08:00
|
|
|
// https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup
|
|
|
|
const sentryWebpackPluginOptions = {
|
2023-06-06 10:29:38 +08:00
|
|
|
org: SENTRY_ORG,
|
|
|
|
project: SENTRY_PROJECT,
|
2023-05-29 11:38:24 +08:00
|
|
|
silent: true, // Suppresses all logs
|
|
|
|
sourcemaps: {
|
2023-05-30 10:32:26 +08:00
|
|
|
assets: './**',
|
|
|
|
ignore: ['./node_modules/**'],
|
2023-05-29 11:38:24 +08:00
|
|
|
},
|
|
|
|
// https://github.com/getsentry/sentry-webpack-plugin#options.
|
|
|
|
}
|
|
|
|
|
2023-05-30 15:09:25 +08:00
|
|
|
module.exports = isHideSentry ? withMDX(nextConfig) : withMDX(withSentryConfig(nextConfig, sentryWebpackPluginOptions))
|