mirror of
https://github.com/CompassConnections/Compass.git
synced 2026-03-25 10:02:27 -04:00
108 lines
3.1 KiB
TypeScript
108 lines
3.1 KiB
TypeScript
import {IS_LOCAL} from 'common/hosting/constants'
|
|
import type {NextConfig} from 'next'
|
|
|
|
const isAppBuild = !!process.env.NEXT_PUBLIC_WEBVIEW
|
|
console.log({isAppBuild})
|
|
|
|
const nextConfig: NextConfig = {
|
|
output: isAppBuild ? 'export' : undefined,
|
|
productionBrowserSourceMaps: !isAppBuild, // no source maps in Android build
|
|
reactStrictMode: true,
|
|
modularizeImports: {
|
|
// heroicons v1 transforms removed — v2 has tree-shaking built in
|
|
lodash: {
|
|
transform: 'lodash/{{member}}',
|
|
},
|
|
},
|
|
transpilePackages: ['common'],
|
|
experimental: {
|
|
scrollRestoration: true,
|
|
turbopackFileSystemCacheForDev: true, // filesystem cache for faster dev rebuilds
|
|
},
|
|
env: {
|
|
NEXT_PUBLIC_VERCEL_DEPLOYMENT_ID: process.env.VERCEL_DEPLOYMENT_ID,
|
|
},
|
|
// Remove once confirmed that posthog.init works without it
|
|
// rewrites: async () => {
|
|
// if (isAppBuild) {
|
|
// return []
|
|
// }
|
|
// return [
|
|
// {
|
|
// source: '/ingest/static/:path*',
|
|
// destination: 'https://us-assets.i.posthog.com/static/:path*',
|
|
// },
|
|
// {
|
|
// source: '/ingest/:path*',
|
|
// destination: 'https://us.i.posthog.com/:path*',
|
|
// },
|
|
// {
|
|
// source: '/ingest/decide',
|
|
// destination: 'https://us.i.posthog.com/decide',
|
|
// },
|
|
// ]
|
|
// },
|
|
skipTrailingSlashRedirect: true,
|
|
images: {
|
|
unoptimized: isAppBuild || IS_LOCAL,
|
|
dangerouslyAllowSVG: true,
|
|
remotePatterns: [
|
|
{hostname: 'martinbraquet.com'},
|
|
{hostname: 'compassmeet.com'},
|
|
{hostname: 'lh3.googleusercontent.com'},
|
|
{hostname: 'i.imgur.com'},
|
|
{hostname: 'firebasestorage.googleapis.com'},
|
|
{hostname: 'storage.googleapis.com'},
|
|
{hostname: 'picsum.photos'},
|
|
{hostname: '*.giphy.com'},
|
|
{hostname: 'ui-avatars.com'},
|
|
{hostname: 'localhost'},
|
|
{hostname: '127.0.0.1'},
|
|
],
|
|
// Allow private IPs for local OG image generation
|
|
minimumCacheTTL: 0,
|
|
},
|
|
webpack: (config, {dev}) => {
|
|
// console.log({dev})
|
|
if (dev) {
|
|
config.cache = {type: 'filesystem'}
|
|
config.infrastructureLogging = {level: 'warn'}
|
|
config.stats = 'minimal'
|
|
}
|
|
config.module.rules.push({
|
|
test: /\.svg$/,
|
|
use: [
|
|
{
|
|
loader: '@svgr/webpack',
|
|
options: {
|
|
svgoConfig: {
|
|
plugins: [{name: 'removeViewBox', active: false}],
|
|
floatPrecision: 2,
|
|
},
|
|
},
|
|
},
|
|
],
|
|
})
|
|
return config
|
|
},
|
|
async redirects() {
|
|
return [
|
|
{source: '/discord', destination: 'https://discord.gg/8Vd7jzqjun', permanent: false},
|
|
{source: '/patreon', destination: 'https://patreon.com/CompassMeet', permanent: false},
|
|
{
|
|
source: '/paypal',
|
|
destination: 'https://www.paypal.com/paypalme/CompassConnections',
|
|
permanent: false,
|
|
},
|
|
{
|
|
source: '/github',
|
|
destination: 'https://github.com/CompassConnections/Compass',
|
|
permanent: false,
|
|
},
|
|
{source: '/charts', destination: '/stats', permanent: true},
|
|
]
|
|
},
|
|
}
|
|
|
|
export default nextConfig
|