-
Notifications
You must be signed in to change notification settings - Fork 0
/
craco.config.js
49 lines (45 loc) · 1.53 KB
/
craco.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
const fs = require('fs');
const lessVarsToJs = require('less-vars-to-js');
const lessVars = fs.readFileSync(require.resolve('@osui/icloud-theme/dist/antd-vars-patch.less'), 'utf8');
const modifyVars = lessVarsToJs(lessVars, {
resolveVariables: true,
stripPrefix: true
});
const {loaders} = require('@reskript/config-webpack');
const loaderOptions = {
cwd: process.cwd(),
srcDirectory: '',
projectSettings: {
build: {
extraLessVariables: {'ant-prefix': 'ant', ...modifyVars},
extractCSS: false,
styleResources: [
require.resolve('@osui/icloud-theme/dist/less-functions-overrides.less'),
],
},
},
};
module.exports = {
plugins: [{
plugin: {
overrideWebpackConfig({webpackConfig}) {
const oneOfRule = webpackConfig.module.rules.find(rule => rule.oneOf);
const lessRule = oneOfRule.oneOf.find(
rule => String(rule.test) === String(/\.less$/)
);
if (!lessRule) {
oneOfRule.oneOf.unshift({
test: /\.less$/,
use: [
loaders.style(loaderOptions),
loaders.css(loaderOptions),
loaders.less(loaderOptions),
loaders.styleResources(loaderOptions),
]
});
}
return webpackConfig;
}
}
}],
};