Skip to content

Commit 1435581

Browse files
authored
fix(build): tree shaking (element-plus#8088)
1 parent 4662a37 commit 1435581

File tree

6 files changed

+48
-40
lines changed

6 files changed

+48
-40
lines changed

docs/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
},
1111
"dependencies": {
1212
"@docsearch/js": "^3.0.0",
13-
"@element-plus/icons-vue": "^2.0.3",
13+
"@element-plus/icons-vue": "^2.0.5",
1414
"@element-plus/metadata": "workspace:*",
1515
"@vue/shared": "^3.2.33",
1616
"@vueuse/core": "^8.5.0",

internal/build/src/tasks/full-bundle.ts

Lines changed: 33 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import commonjs from '@rollup/plugin-commonjs'
55
import vue from '@vitejs/plugin-vue'
66
import DefineOptions from 'unplugin-vue-define-options/rollup'
77
import vueJsx from '@vitejs/plugin-vue-jsx'
8-
import esbuild from 'rollup-plugin-esbuild'
8+
import esbuild, { minify as minifyPlugin } from 'rollup-plugin-esbuild'
99
import { parallel } from 'gulp'
1010
import glob from 'fast-glob'
1111
import { camelCase, upperFirst } from 'lodash'
@@ -24,37 +24,45 @@ import {
2424
writeBundles,
2525
} from '../utils'
2626
import { target } from '../build-info'
27+
import type { Plugin } from 'rollup'
2728

2829
const banner = `/*! ${PKG_BRAND_NAME} v${version} */\n`
2930

3031
async function buildFullEntry(minify: boolean) {
32+
const plugins: Plugin[] = [
33+
ElementPlusAlias(),
34+
DefineOptions(),
35+
vue({
36+
isProduction: true,
37+
}),
38+
vueJsx(),
39+
nodeResolve({
40+
extensions: ['.mjs', '.js', '.json', '.ts'],
41+
}),
42+
commonjs(),
43+
esbuild({
44+
exclude: [],
45+
sourceMap: minify,
46+
target,
47+
loaders: {
48+
'.vue': 'ts',
49+
},
50+
define: {
51+
'process.env.NODE_ENV': JSON.stringify('production'),
52+
},
53+
treeShaking: true,
54+
legalComments: 'eof',
55+
}),
56+
]
57+
if (minify) {
58+
plugins.push(minifyPlugin({ sourceMap: true }))
59+
}
60+
3161
const bundle = await rollup({
3262
input: path.resolve(epRoot, 'index.ts'),
33-
plugins: [
34-
ElementPlusAlias(),
35-
DefineOptions(),
36-
vue({
37-
isProduction: true,
38-
}),
39-
vueJsx(),
40-
nodeResolve({
41-
extensions: ['.mjs', '.js', '.json', '.ts'],
42-
}),
43-
commonjs(),
44-
esbuild({
45-
exclude: [],
46-
minify,
47-
sourceMap: minify,
48-
target,
49-
loaders: {
50-
'.vue': 'ts',
51-
},
52-
define: {
53-
'process.env.NODE_ENV': JSON.stringify('production'),
54-
},
55-
}),
56-
],
63+
plugins,
5764
external: await generateExternal({ full: true }),
65+
treeshake: true,
5866
})
5967
await writeBundles(bundle, [
6068
{

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"@element-plus/constants": "workspace:*",
4949
"@element-plus/directives": "workspace:*",
5050
"@element-plus/hooks": "workspace:*",
51-
"@element-plus/icons-vue": "^2.0.3",
51+
"@element-plus/icons-vue": "^2.0.5",
5252
"@element-plus/locale": "workspace:*",
5353
"@element-plus/test-utils": "workspace:*",
5454
"@element-plus/theme-chalk": "workspace:*",

packages/element-plus/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
},
5353
"dependencies": {
5454
"@ctrl/tinycolor": "^3.4.1",
55-
"@element-plus/icons-vue": "^2.0.3",
55+
"@element-plus/icons-vue": "^2.0.5",
5656
"@floating-ui/dom": "^0.5.0",
5757
"@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
5858
"@types/lodash": "^4.14.182",

play/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"preview": "vite preview"
88
},
99
"dependencies": {
10-
"@element-plus/icons-vue": "^2.0.3",
10+
"@element-plus/icons-vue": "^2.0.5",
1111
"vue": "^3.2.33"
1212
},
1313
"devDependencies": {

pnpm-lock.yaml

Lines changed: 11 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)