-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathconfig-overrides.js
56 lines (51 loc) · 1.45 KB
/
config-overrides.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
// Overriding CreateReactApp settings, ref: https://github.com/arackaf/customize-cra
const {
override,
addLessLoader,
useBabelRc,
// fixBabelImports,
addWebpackAlias,
removeModuleScopePlugin,
babelInclude,
} = require('customize-cra')
const path = require('path')
// use .eslintrc.js config
const eslintConfig = require('./.eslintrc.js')
const useEslintConfig = configRules => config => {
const updatedRules = config.module.rules.map(
rule => {
// Only target rules that have defined a `useEslintrc` parameter in their options
if (rule.use && rule.use.some(use => use.options && use.options.useEslintrc !== void 0)) {
const ruleUse = rule.use[0]
const baseOptions = ruleUse.options
const baseConfig = baseOptions.baseConfig || {}
const newOptions = {
useEslintrc: false,
ignore: true,
baseConfig: { ...baseConfig, ...configRules },
}
ruleUse.options = newOptions
return rule
// Rule not using eslint. Do not modify.
} else {
return rule
}
}
)
config.module.rules = updatedRules
return config
}
module.exports = override(
useBabelRc(),
addLessLoader({
lessOptions: {
javascriptEnabled: true,
}
}),
useEslintConfig(eslintConfig),
removeModuleScopePlugin(),
babelInclude([path.resolve('src'), path.resolve('scripts')]),
addWebpackAlias({
'@scripts': path.resolve(__dirname, 'scripts'),
}),
)