-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcraco.config.js
85 lines (79 loc) · 2.23 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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
const CracoLessPlugin = require('craco-less')
const { styles } = require('@ckeditor/ckeditor5-dev-utils')
const getLoaderByRegex = (loaders, regex) => loaders.find(
item => !Array.isArray(item.test) && (String(item.test) === String(regex))
)
const cssRegex = /\.css$/
const cssModuleRegex = /\.module\.css$/
const CKEditorRegExp = {
cssExp: /ckeditor5-[^/\\]+[/\\]theme[/\\].+\.css$/,
svgExp: /ckeditor5-[^/\\]+[/\\]theme[/\\]icons[/\\][^/\\]+\.svg$/,
}
const CKEditor5WebpackConfigPlugin = {
overrideWebpackConfig: ({ webpackConfig, options = {} }) => {
const { oneOf } = webpackConfig.module.rules.find(rule => rule.oneOf)
oneOf.unshift(
{
test: /ckeditor5-[^/\\]+[/\\]theme[/\\]icons[/\\][^/\\]+\.svg$/,
type: 'asset/source',
},
{
test: CKEditorRegExp.cssExp,
use: [
{
loader: 'style-loader',
options: {
injectType: 'singletonStyleTag'
}
},
'css-loader',
{
loader: 'postcss-loader',
options: {
postcssOptions: styles.getPostCssConfig({
themeImporter: {
themePath: require.resolve('@ckeditor/ckeditor5-theme-lark')
},
minify: true
})
}
}
]
}
)
// Make sure cssRegex doesn't use loader for CKEditor5
getLoaderByRegex(oneOf, cssRegex).exclude = [cssModuleRegex, CKEditorRegExp.cssExp]
// Make sure cssModuleRegex doesn't use loader for CKEditor5
getLoaderByRegex(oneOf, cssModuleRegex).exclude = [CKEditorRegExp.cssExp]
return webpackConfig
}
}
module.exports = {
babel: {
plugins: [
['import', { libraryName: '@lockerpm/design', libraryDirectory: 'es', style: true }],
],
},
plugins: [
{
plugin: CKEditor5WebpackConfigPlugin
},
{
plugin: CracoLessPlugin,
options: {
lessLoaderOptions: {
lessOptions: {
modifyVars: {
'@primary-color': '#42a5f5',
'@text-selection-bg': '#1890ff',
},
javascriptEnabled: true
},
},
},
},
],
typescript: {
enableTypeChecking: false,
},
}