-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnext.config.js
56 lines (51 loc) · 1.38 KB
/
next.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
distDir: 'dist',
output: 'standalone',
images: {
domains: ['via.placeholder.com', 'api.slingacademy.com'], // Add the domain here
},
webpack: (
config,
server
) => {
console.log('isDev:', server.dev)
if (server.dev) {
return config
}
else {
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const TerserPlugin = require('terser-webpack-plugin');
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
config.optimization = {
splitChunks: {
cacheGroups: {
styles: {
name: 'static/style',
type: 'css/mini-extract',
chunks: 'all',
enforce: true
}
}
},
minimize: true,
minimizer: [new TerserPlugin(), new CssMinimizerPlugin()]
};
config.plugins.push(new MiniCssExtractPlugin());
config.plugins.push(new MiniCssExtractPlugin({ filename: '[name].css', linkType: 'text/css' }));
config.module.rules.push({
test: [/\.css$/i, /\.scss$/, /\.s[ac]ss$/i],
use: [
{
loader: MiniCssExtractPlugin.loader
},
'css-loader',
'sass-loader'
]
});
return config;
}
}
};
module.exports = nextConfig;