Files
QR-master/next.config.mjs

105 lines
4.5 KiB
JavaScript

/** @type {import('next').NextConfig} */
const nextConfig = {
output: 'standalone',
skipTrailingSlashRedirect: true,
images: {
unoptimized: false,
domains: ['www.qrmaster.net', 'qrmaster.net', 'images.qrmaster.net'],
formats: ['image/webp', 'image/avif'],
deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
},
experimental: {
serverComponentsExternalPackages: ['@prisma/client', 'bcryptjs'],
},
// Allow build to succeed even with prerender errors
// Pages with useSearchParams() will be rendered dynamically at runtime
staticPageGenerationTimeout: 120,
onDemandEntries: {
maxInactiveAge: 25 * 1000,
pagesBufferLength: 2,
},
poweredByHeader: false,
async redirects() {
return [
{
source: '/create-qr',
destination: '/dynamic-qr-code-generator',
permanent: true,
},
{
source: '/guide/tracking-analytics',
destination: '/learn/tracking',
permanent: true,
},
{
source: '/guide/bulk-qr-code-generation',
destination: '/learn/developer',
permanent: true,
},
{
source: '/guide/qr-code-best-practices',
destination: '/learn/basics',
permanent: true,
},
{
source: '/tools/phone-qr-code',
destination: '/tools/call-qr-code-generator',
permanent: true,
},
{
source: '/barcode-generator',
destination: '/tools/barcode-generator',
permanent: true,
},
{
source: '/bar-code-generator',
destination: '/tools/barcode-generator',
permanent: true,
},
{
source: '/qr-code-for/breweries-tap-rooms',
destination: '/qr-code-for/breweries',
permanent: true,
},
{
source: '/qr-code-for/wineries-vineyards',
destination: '/qr-code-for/wineries',
permanent: true,
},
{
source: '/qr-code-for/catering-businesses',
destination: '/qr-code-for/catering',
permanent: true,
},
{
source: '/qr-code-for/spas-wellness-centers',
destination: '/qr-code-for/spas',
permanent: true,
},
// Additional likely old slugs from previous site version
{ source: '/qr-code-for/bars-pubs', destination: '/qr-code-for/bars', permanent: true },
{ source: '/qr-code-for/nightclubs-venues', destination: '/qr-code-for/nightclubs', permanent: true },
{ source: '/qr-code-for/dental-practices', destination: '/qr-code-for/dentists', permanent: true },
{ source: '/qr-code-for/pet-groomers', destination: '/qr-code-for/pet-grooming', permanent: true },
{ source: '/qr-code-for/clothing-apparel-stores', destination: '/qr-code-for/clothing-stores', permanent: true },
{ source: '/qr-code-for/florists-flower-shops', destination: '/qr-code-for/florists', permanent: true },
{ source: '/qr-code-for/pet-stores-groomers', destination: '/qr-code-for/pet-stores', permanent: true },
{ source: '/qr-code-for/hardware-diy-stores', destination: '/qr-code-for/hardware-stores', permanent: true },
{ source: '/qr-code-for/universities-colleges', destination: '/qr-code-for/universities', permanent: true },
{ source: '/qr-code-for/museums-exhibitions', destination: '/qr-code-for/museums', permanent: true },
{ source: '/qr-code-for/public-libraries', destination: '/qr-code-for/libraries', permanent: true },
{ source: '/qr-code-for/theaters-performing-arts', destination: '/qr-code-for/theaters', permanent: true },
{ source: '/qr-code-for/cinemas-movie-theaters', destination: '/qr-code-for/cinemas', permanent: true },
{ source: '/qr-code-for/churches-places-of-worship', destination: '/qr-code-for/churches', permanent: true },
{ source: '/qr-code-for/stadiums-sports-venues', destination: '/qr-code-for/stadiums', permanent: true },
{ source: '/qr-code-for/airports-travel-hubs', destination: '/qr-code-for/airports', permanent: true },
{ source: '/qr-code-for/photography-studios', destination: '/qr-code-for/photographers', permanent: true },
{ source: '/qr-code-for/trade-shows-exhibitions', destination: '/qr-code-for/trade-shows', permanent: true },
{ source: '/qr-code-for/accounting-firms', destination: '/qr-code-for/accountants', permanent: true },
];
},
};
export default nextConfig;