Skip to content

Commit bd1ffd3

Browse files
committed
feat: optimize minification
1 parent eddc68e commit bd1ffd3

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

packages/@vue/cli-service/lib/config/base.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ module.exports = (api, options) => {
3535
.add(api.resolve('node_modules'))
3636
.add(resolveLocal('node_modules'))
3737

38+
webpackConfig.module
39+
.noParse(/^(vue|vue-router|vuex|vuex-router-sync)$/)
40+
3841
// js is handled by cli-plugin-bable
3942

4043
webpackConfig.module

packages/@vue/cli-service/lib/config/prod.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,37 @@ module.exports = (api, options) => {
4949
.use(require('uglifyjs-webpack-plugin'), [{
5050
uglifyOptions: {
5151
compress: {
52+
// turn off flags with small gains to speed up minification
53+
arrows: false,
54+
collapse_vars: false, // 0.3kb
55+
comparisons: false,
56+
computed_props: false,
57+
hoist_funs: false,
58+
hoist_props: false,
59+
hoist_vars: false,
60+
inline: false,
61+
loops: false,
62+
negate_iife: false,
63+
properties: false,
64+
reduce_funcs: false,
65+
reduce_vars: false,
66+
switches: false,
67+
toplevel: false,
68+
typeofs: false,
69+
70+
// a few flags with noticable gains/speed ratio
71+
// numbers based on out of the box vendor bundle
72+
booleans: true, // 0.7kb
73+
if_return: true, // 0.4kb
74+
sequences: true, // 0.7kb
75+
unused: true, // 2.3kb
76+
77+
// required features to drop conditional branches
78+
conditionals: true,
79+
dead_code: true,
80+
evaluate: true,
81+
82+
// turn off warnings when dropping dead code
5283
warnings: false
5384
}
5485
},

0 commit comments

Comments
 (0)