-
Notifications
You must be signed in to change notification settings - Fork 0
/
unocss.ts
53 lines (47 loc) · 1.28 KB
/
unocss.ts
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
import { IApi } from 'umi';
export default (api: IApi) => {
api.describe({
key: 'unocss',
config: {
schema(Joi) {
return Joi.alternatives().try(
Joi.object(),
Joi.boolean().invalid(true),
);
},
},
enableBy: api.EnableBy.config,
});
const outputPath = 'uno.css';
api.chainWebpack((memo: any) => {
try {
const UnocssWebpackPlugin = require('@unocss/webpack').default;
memo.plugin('unocssPlugin').use(UnocssWebpackPlugin, [{}]);
} catch (error) {
api.logger.error('请在项目中添加@unocss/webpack依赖');
}
});
api.modifyViteConfig((memo: any) => {
try {
const UnocssVitePlugin = require('unocss/vite').default;
memo.plugins?.unshift(UnocssVitePlugin({}));
return memo;
} catch (error) {
api.logger.error('请在项目中添加unocss依赖');
}
});
api.modifyConfig((memo) => {
if (api.isPluginEnable('mfsu')) {
// mfsu默认开启时为undefined
if (memo.mfsu === undefined) {
memo.mfsu = {};
}
memo.mfsu.exclude = [...(memo.mfsu?.exclude || []), outputPath];
}
return memo;
});
/** 将生成的 css 文件加入到 import 中 */
api.addEntryImports(() => {
return [{ source: outputPath }];
});
};