/
config-overrides.js
53 lines (45 loc) · 1.22 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
/*
* @Author: lifan
* @Date: 2019-01-26 08:47:36
* @Last Modified by: lifan
* @Last Modified time: 2020-01-20 10:17:47
*/
const { override, addBundleVisualizer, disableChunk } = require('customize-cra');
const StyleLintPlugin = require('stylelint-webpack-plugin');
const path = require('path');
const { InjectManifest } = require('workbox-webpack-plugin');
const isProduction = process.env.NODE_ENV === 'production';
const addStylint = () => (config) => {
config.plugins.push(
new StyleLintPlugin({
context: 'src',
configFile: path.resolve(__dirname, './.stylelintrc.json'),
files: '**/*.scss',
failOnError: false,
quiet: true,
syntax: 'scss',
fix: false,
}),
);
return config;
};
const injectManifest = () => (config) => {
let plugins = config.plugins.filter(p => {
return p.constructor.name !== 'GenerateSW';
});
plugins.push(
new InjectManifest({
swSrc: './public/service-worker.js',
exclude: [/\.map$/, /asset-manifest\.json$/],
importWorkboxFrom: 'cdn',
}),
);
config.plugins = plugins;
return config;
};
module.exports = override(
isProduction && addBundleVisualizer(),
addStylint(),
disableChunk(),
injectManifest()
);