2021-10-27 12:27:14 +02:00
|
|
|
module.exports = (phase, { defaultConfig }) => {
|
|
|
|
/**
|
|
|
|
* @type {import('next').NextConfig}
|
|
|
|
*/
|
|
|
|
const nextConfig = {
|
|
|
|
webpack: (config, options) => {
|
|
|
|
config.module.rules.push(
|
|
|
|
{
|
|
|
|
test: /\.svg$/,
|
|
|
|
issuer: /\.(tsx|ts)$/,
|
|
|
|
use: [{ loader: '@svgr/webpack', options: { icon: true } }]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
test: /\.gif$/,
|
|
|
|
// yay for webpack 5
|
|
|
|
// https://webpack.js.org/guides/asset-management/#loading-images
|
|
|
|
type: 'asset/resource'
|
|
|
|
}
|
|
|
|
)
|
|
|
|
|
|
|
|
// for old ocean.js, most likely can be removed later on
|
2022-01-11 10:45:15 +01:00
|
|
|
config.plugins.push(
|
|
|
|
new options.webpack.IgnorePlugin({
|
|
|
|
resourceRegExp: /^electron$/
|
|
|
|
})
|
|
|
|
)
|
|
|
|
|
2021-10-27 12:27:14 +02:00
|
|
|
config.resolve.fallback = {
|
|
|
|
fs: false,
|
|
|
|
crypto: false,
|
|
|
|
os: false,
|
|
|
|
stream: false,
|
|
|
|
http: false,
|
|
|
|
https: false
|
|
|
|
}
|
|
|
|
|
|
|
|
return typeof defaultConfig.webpack === 'function'
|
|
|
|
? defaultConfig.webpack(config, options)
|
|
|
|
: config
|
|
|
|
}
|
|
|
|
|
|
|
|
// Prefer loading of ES Modules over CommonJS
|
|
|
|
// https://nextjs.org/blog/next-11-1#es-modules-support
|
|
|
|
// experimental: { esmExternals: true }
|
|
|
|
}
|
|
|
|
|
|
|
|
return nextConfig
|
|
|
|
}
|