-
Notifications
You must be signed in to change notification settings - Fork 23
/
next.config.js
62 lines (56 loc) · 1.64 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
61
62
/* eslint-disable @typescript-eslint/no-var-requires */
const path = require('path')
const AutoImport = require('unplugin-auto-import/webpack')
const { FileSystemIconLoader } = require('unplugin-icons/loaders')
const IconsResolver = require('unplugin-icons/resolver')
const Icons = require('unplugin-icons/webpack')
const WindiCSSWebpackPlugin = require('windicss-webpack-plugin')
module.exports = {
eslint: {
ignoreDuringBuilds: true,
},
include: path.resolve(__dirname, 'public'),
webpack(config /* , _options */) {
config.plugins.push(new WindiCSSWebpackPlugin())
config.module.rules.push({
test: /\.md$/,
use: 'raw-loader',
})
config.plugins.push(
Icons({
compiler: 'jsx',
customCollections: {
glyph: FileSystemIconLoader('./assets/glyphs'),
icon: FileSystemIconLoader('./assets/icons'),
public: FileSystemIconLoader('public/images', svg =>
svg.replace(/^<svg /, '<svg fill="currentColor" ')
),
},
defaultClass: 'inline-block',
extension: 'jsx',
iconCustomizer(collection, _icon, props) {
if (collection === 'glyph') props.width = ''
},
jsx: 'react',
})
)
config.plugins.push(
AutoImport({
dts: './auto-imports.d.ts',
eslintrc: {
enabled: true,
},
imports: 'react',
resolvers: [
IconsResolver({
customCollections: ['public', 'glyph', 'icon'],
enabledCollections: ['mdi'],
extension: 'jsx',
prefix: false,
}),
],
})
)
return config
},
}