-
Notifications
You must be signed in to change notification settings - Fork 1
/
next.config.js
60 lines (54 loc) · 1.27 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
57
58
59
60
const path = require('path');
const regexEqual = (x, y) => {
return (
x instanceof RegExp &&
y instanceof RegExp &&
x.source === y.source &&
x.global === y.global &&
x.ignoreCase === y.ignoreCase &&
x.multiline === y.multiline
);
};
module.exports = {
webpack(config) {
config.module.rules.push(...[
{
test: /\.svg$/,
use: ['@svgr/webpack']
}
]);
config.resolve.alias = {
...config.resolve.alias,
...['assets', 'css', 'components', 'pages', 'utils'].reduce((acc, curr) => {
acc[curr] = path.resolve(__dirname, 'src/' + curr + '/');
return acc;
}, {}),
react: path.resolve('node_modules/react'),
'~': path.resolve(__dirname, 'src/')
};
// Use to handle :globals in module.css
const oneOf = config.module.rules.find(
(rule) => typeof rule.oneOf === 'object'
);
if (oneOf) {
const moduleCssRule = oneOf.oneOf.find(
(rule) => regexEqual(rule.test, /\.module\.css$/)
// regexEqual(rule.test, /\.module\.(scss|sass)$/)
);
if (moduleCssRule) {
const cssLoader = moduleCssRule.use.find(({ loader }) =>
loader.includes('css-loader')
);
if (cssLoader) {
cssLoader.options.modules.mode = 'local';
}
}
}
return config;
},
images: {
domains: [
'oxfordunichess.github.io'
]
}
};