-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathconfig-overrides.js
More file actions
51 lines (46 loc) · 1.76 KB
/
config-overrides.js
File metadata and controls
51 lines (46 loc) · 1.76 KB
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
const { override, addLessLoader, addWebpackPlugin, addWebpackAlias, addPostcssPlugins, addDecoratorsLegacy, disableEsLint } = require('customize-cra');
const path = require('path')
const theme = require('./src/style/theme.jsx')
const CompressionWebpackPlugin = require('compression-webpack-plugin');
const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer')
// 配置开发模式和打包模式
const addCustomize = () => (config) => {
if (process.env.NODE_ENV === 'production') {
config.devtool = false; //去除map文件
const { promisify } = require('util');
const clear = require('clear')
const chalk = require('chalk')
const figlet = promisify(require('figlet'))
clear()
const log = content => console.log(chalk.blue(content))
figlet('DOMESY !').then(res => log(res))
// 添加js打包gzip配置
config.plugins = [...config.plugins, new CompressionWebpackPlugin({
test: /\.js$|\.css$/,
threshold: 1024,
})]
} else if(process.env.NODE_ENV === 'development'){
}
return config;
}
module.exports = override(
addLessLoader({
lessOptions: {
javascriptEnabled: true,
modifyVars: theme,
localIdentName: '[local]--[hash:base64:5]' // 自定义 CSS Modules 的 localIdentName
}
}),
addWebpackAlias({
["@"]: path.resolve(__dirname, "src")
}),
process.env.NODE_ENV === 'production' ? addPostcssPlugins([require("postcss-px2rem-exclude")({ remUnit: 37.5, exclude: /node_modules/i })]) : null,
addDecoratorsLegacy(),
disableEsLint(), //忽略eslint警告
addCustomize(),
process.env.NODE_ENV === 'production' ? addWebpackPlugin(
new BundleAnalyzerPlugin({
analyzerMode: 'static' //输出静态报告文件report.html,而不是启动一个web服务
})
) : undefined
);