90 lines
2.3 KiB
TypeScript
90 lines
2.3 KiB
TypeScript
import { withSentryConfig } from "@sentry/nextjs";
|
|
import { NextConfig } from "next";
|
|
import { PHASE_PRODUCTION_BUILD } from "next/constants";
|
|
|
|
const nextConfig = (phase: string): NextConfig => ({
|
|
output: phase === PHASE_PRODUCTION_BUILD ? "export" : undefined,
|
|
trailingSlash: false,
|
|
reactStrictMode: true,
|
|
images: {
|
|
unoptimized: true,
|
|
},
|
|
headers:
|
|
phase === PHASE_PRODUCTION_BUILD
|
|
? undefined
|
|
: async () => [
|
|
{
|
|
source: "/",
|
|
headers: [
|
|
{
|
|
key: "Cross-Origin-Embedder-Policy",
|
|
value: "require-corp",
|
|
},
|
|
{
|
|
key: "Cross-Origin-Opener-Policy",
|
|
value: "same-origin",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
source: "/engines/:blob*",
|
|
headers: [
|
|
{
|
|
key: "Cross-Origin-Embedder-Policy",
|
|
value: "require-corp",
|
|
},
|
|
{
|
|
key: "Cross-Origin-Opener-Policy",
|
|
value: "same-origin",
|
|
},
|
|
{
|
|
key: "Cache-Control",
|
|
value: "public, max-age=31536000, immutable",
|
|
},
|
|
{
|
|
key: "Age",
|
|
value: "181921",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
source: "/play",
|
|
headers: [
|
|
{
|
|
key: "Cross-Origin-Embedder-Policy",
|
|
value: "require-corp",
|
|
},
|
|
{
|
|
key: "Cross-Origin-Opener-Policy",
|
|
value: "same-origin",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
source: "/database",
|
|
headers: [
|
|
{
|
|
key: "Cross-Origin-Embedder-Policy",
|
|
value: "require-corp",
|
|
},
|
|
{
|
|
key: "Cross-Origin-Opener-Policy",
|
|
value: "same-origin",
|
|
},
|
|
],
|
|
},
|
|
],
|
|
});
|
|
|
|
export default withSentryConfig(nextConfig, {
|
|
// https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/
|
|
org: process.env.SENTRY_ORG,
|
|
project: "javascript-nextjs",
|
|
widenClientFileUpload: true,
|
|
reactComponentAnnotation: {
|
|
enabled: true,
|
|
},
|
|
hideSourceMaps: true,
|
|
disableLogger: true,
|
|
});
|