38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
const withPWA = require('next-pwa')({
|
|
disable: process.env.NODE_ENV !== 'production',
|
|
dest: 'public',
|
|
register: true,
|
|
skipWaiting: true
|
|
})
|
|
|
|
function buildRemotePatterns() {
|
|
const raw = process.env.NEXT_PUBLIC_DOMAINS_IMAGE || ''
|
|
const patterns = raw.split(' ').filter(Boolean).map(entry => {
|
|
const [hostname, port] = entry.split(':')
|
|
const isLocal = hostname === 'localhost' || hostname === '127.0.0.1'
|
|
const pattern = {protocol: isLocal ? 'http' : 'https', hostname, pathname: '/uploads/**'}
|
|
if (port) pattern.port = port
|
|
return pattern
|
|
})
|
|
if (!raw.includes('localhost'))
|
|
patterns.push({protocol: 'http', hostname: 'localhost', port: '1337', pathname: '/uploads/**'})
|
|
if (!raw.includes('127.0.0.1'))
|
|
patterns.push({protocol: 'http', hostname: '127.0.0.1', port: '1337', pathname: '/uploads/**'})
|
|
return patterns
|
|
}
|
|
|
|
module.exports = (withPWA({
|
|
turbopack: {},
|
|
webpack: config => {
|
|
config.module.rules.push({
|
|
test: /\.svg$/,
|
|
use: ['@svgr/webpack', 'url-loader'],
|
|
})
|
|
|
|
return config
|
|
},
|
|
images: {
|
|
remotePatterns: buildRemotePatterns()
|
|
}
|
|
}))
|