-
Notifications
You must be signed in to change notification settings - Fork 287
/
Copy pathoptimization.js
40 lines (40 loc) · 1.02 KB
/
optimization.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
// [optimization 优化配置]
/**
* @name optimization
* @description 优化配置
*/
module.exports = ({ config, webpackVersion }) => {
const v = parseInt(webpackVersion)
return () => {
config
.optimization.splitChunks({
chunks: 'async',
// webpack5
// https://github.com/webpack/changelog-v5#splitchunks-and-module-sizes
minSize: v === 5 ? {
javascript: 30000,
style: 50000
} : 30000,
minChunks: 1,
maxAsyncRequests: 3,
maxInitialRequests: 3,
cacheGroups: {
vendors: {
name: 'chunk-vendors',
test: /[\\/]node_modules[\\/]/,
priority: -10,
chunks: 'initial'
},
common: {
name: 'chunk-common',
minChunks: 2,
priority: -20,
chunks: 'initial',
reuseExistingChunk: true
}
}
})
config.optimization.usedExports(true)
// config.optimization.set('chunkIds', 'natural')
}
}