mirror of
https://github.com/owncast/owncast.git
synced 2024-11-28 02:29:20 +03:00
84 lines
2.3 KiB
JavaScript
84 lines
2.3 KiB
JavaScript
const withLess = require('next-with-less');
|
|
const withBundleAnalyzer = require('@next/bundle-analyzer')({
|
|
enabled: process.env.ANALYZE === 'true',
|
|
});
|
|
|
|
const runtimeCaching = require('next-pwa/cache');
|
|
|
|
const withPWA = require('next-pwa')({
|
|
dest: 'public',
|
|
runtimeCaching: [
|
|
...runtimeCaching,
|
|
{
|
|
urlPattern: /\.(?:ts|m3u8)$/i,
|
|
handler: 'NetworkOnly',
|
|
},
|
|
{
|
|
urlPattern: /^\/admin\/.*$/,
|
|
handler: 'NetworkOnly',
|
|
},
|
|
{
|
|
urlPattern: /^\/api\/.*$/,
|
|
handler: 'NetworkOnly',
|
|
},
|
|
],
|
|
register: true,
|
|
skipWaiting: true,
|
|
disableDevLogs: true,
|
|
publicExcludes: ['!img/platformlogos/**/*', '!styles/admin/**/*'],
|
|
buildExcludes: [/chunks\/pages\/admin.*/, '!**/admin/**/*'],
|
|
sourcemap: process.env.NODE_ENV === 'development',
|
|
disable: process.env.NODE_ENV === 'development',
|
|
});
|
|
|
|
module.exports = withPWA(
|
|
withBundleAnalyzer(
|
|
withLess({
|
|
productionBrowserSourceMaps: process.env.SOURCE_MAPS === 'true',
|
|
trailingSlash: true,
|
|
reactStrictMode: true,
|
|
images: {
|
|
unoptimized: true,
|
|
},
|
|
swcMinify: true,
|
|
webpack(config) {
|
|
config.module.rules.push({
|
|
test: /\.svg$/i,
|
|
issuer: /\.[jt]sx?$/,
|
|
use: ['@svgr/webpack'],
|
|
});
|
|
|
|
return config;
|
|
},
|
|
async rewrites() {
|
|
return [
|
|
{
|
|
source: '/api/:path*',
|
|
destination: 'http://localhost:8080/api/:path*', // Proxy to Backend to work around CORS.
|
|
},
|
|
{
|
|
source: '/hls/:path*',
|
|
destination: 'http://localhost:8080/hls/:path*', // Proxy to Backend to work around CORS.
|
|
},
|
|
{
|
|
source: '/img/:path*',
|
|
destination: 'http://localhost:8080/img/:path*', // Proxy to Backend to work around CORS.
|
|
},
|
|
{
|
|
source: '/logo',
|
|
destination: 'http://localhost:8080/logo', // Proxy to Backend to work around CORS.
|
|
},
|
|
{
|
|
source: '/thumbnail.jpg',
|
|
destination: 'http://localhost:8080/thumbnail.jpg', // Proxy to Backend to work around CORS.
|
|
},
|
|
{
|
|
source: '/customjavascript',
|
|
destination: 'http://localhost:8080/customjavascript', // Proxy to Backend to work around CORS.
|
|
},
|
|
];
|
|
},
|
|
pageExtensions: ['tsx'],
|
|
}),
|
|
),
|
|
);
|