mirror of
https://github.com/element-plus/element-plus.git
synced 2025-08-26 04:27:26 +08:00
fix(build): tree shaking (#8088)
This commit is contained in:
@ -10,7 +10,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@docsearch/js": "^3.0.0",
|
||||
"@element-plus/icons-vue": "^2.0.3",
|
||||
"@element-plus/icons-vue": "^2.0.5",
|
||||
"@element-plus/metadata": "workspace:*",
|
||||
"@vue/shared": "^3.2.33",
|
||||
"@vueuse/core": "^8.5.0",
|
||||
|
@ -5,7 +5,7 @@ import commonjs from '@rollup/plugin-commonjs'
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
import DefineOptions from 'unplugin-vue-define-options/rollup'
|
||||
import vueJsx from '@vitejs/plugin-vue-jsx'
|
||||
import esbuild from 'rollup-plugin-esbuild'
|
||||
import esbuild, { minify as minifyPlugin } from 'rollup-plugin-esbuild'
|
||||
import { parallel } from 'gulp'
|
||||
import glob from 'fast-glob'
|
||||
import { camelCase, upperFirst } from 'lodash'
|
||||
@ -24,37 +24,45 @@ import {
|
||||
writeBundles,
|
||||
} from '../utils'
|
||||
import { target } from '../build-info'
|
||||
import type { Plugin } from 'rollup'
|
||||
|
||||
const banner = `/*! ${PKG_BRAND_NAME} v${version} */\n`
|
||||
|
||||
async function buildFullEntry(minify: boolean) {
|
||||
const plugins: Plugin[] = [
|
||||
ElementPlusAlias(),
|
||||
DefineOptions(),
|
||||
vue({
|
||||
isProduction: true,
|
||||
}),
|
||||
vueJsx(),
|
||||
nodeResolve({
|
||||
extensions: ['.mjs', '.js', '.json', '.ts'],
|
||||
}),
|
||||
commonjs(),
|
||||
esbuild({
|
||||
exclude: [],
|
||||
sourceMap: minify,
|
||||
target,
|
||||
loaders: {
|
||||
'.vue': 'ts',
|
||||
},
|
||||
define: {
|
||||
'process.env.NODE_ENV': JSON.stringify('production'),
|
||||
},
|
||||
treeShaking: true,
|
||||
legalComments: 'eof',
|
||||
}),
|
||||
]
|
||||
if (minify) {
|
||||
plugins.push(minifyPlugin({ sourceMap: true }))
|
||||
}
|
||||
|
||||
const bundle = await rollup({
|
||||
input: path.resolve(epRoot, 'index.ts'),
|
||||
plugins: [
|
||||
ElementPlusAlias(),
|
||||
DefineOptions(),
|
||||
vue({
|
||||
isProduction: true,
|
||||
}),
|
||||
vueJsx(),
|
||||
nodeResolve({
|
||||
extensions: ['.mjs', '.js', '.json', '.ts'],
|
||||
}),
|
||||
commonjs(),
|
||||
esbuild({
|
||||
exclude: [],
|
||||
minify,
|
||||
sourceMap: minify,
|
||||
target,
|
||||
loaders: {
|
||||
'.vue': 'ts',
|
||||
},
|
||||
define: {
|
||||
'process.env.NODE_ENV': JSON.stringify('production'),
|
||||
},
|
||||
}),
|
||||
],
|
||||
plugins,
|
||||
external: await generateExternal({ full: true }),
|
||||
treeshake: true,
|
||||
})
|
||||
await writeBundles(bundle, [
|
||||
{
|
||||
|
@ -48,7 +48,7 @@
|
||||
"@element-plus/constants": "workspace:*",
|
||||
"@element-plus/directives": "workspace:*",
|
||||
"@element-plus/hooks": "workspace:*",
|
||||
"@element-plus/icons-vue": "^2.0.3",
|
||||
"@element-plus/icons-vue": "^2.0.5",
|
||||
"@element-plus/locale": "workspace:*",
|
||||
"@element-plus/test-utils": "workspace:*",
|
||||
"@element-plus/theme-chalk": "workspace:*",
|
||||
|
@ -52,7 +52,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@ctrl/tinycolor": "^3.4.1",
|
||||
"@element-plus/icons-vue": "^2.0.3",
|
||||
"@element-plus/icons-vue": "^2.0.5",
|
||||
"@floating-ui/dom": "^0.5.0",
|
||||
"@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
|
||||
"@types/lodash": "^4.14.182",
|
||||
|
@ -7,7 +7,7 @@
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"@element-plus/icons-vue": "^2.0.3",
|
||||
"@element-plus/icons-vue": "^2.0.5",
|
||||
"vue": "^3.2.33"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
22
pnpm-lock.yaml
generated
22
pnpm-lock.yaml
generated
@ -13,7 +13,7 @@ importers:
|
||||
'@element-plus/directives': workspace:*
|
||||
'@element-plus/eslint-config': workspace:*
|
||||
'@element-plus/hooks': workspace:*
|
||||
'@element-plus/icons-vue': ^2.0.3
|
||||
'@element-plus/icons-vue': ^2.0.5
|
||||
'@element-plus/locale': workspace:*
|
||||
'@element-plus/test-utils': workspace:*
|
||||
'@element-plus/theme-chalk': workspace:*
|
||||
@ -80,7 +80,7 @@ importers:
|
||||
'@element-plus/constants': link:packages/constants
|
||||
'@element-plus/directives': link:packages/directives
|
||||
'@element-plus/hooks': link:packages/hooks
|
||||
'@element-plus/icons-vue': 2.0.3_vue@3.2.33
|
||||
'@element-plus/icons-vue': 2.0.5_vue@3.2.33
|
||||
'@element-plus/locale': link:packages/locale
|
||||
'@element-plus/test-utils': link:packages/test-utils
|
||||
'@element-plus/theme-chalk': link:packages/theme-chalk
|
||||
@ -157,7 +157,7 @@ importers:
|
||||
'@element-plus/build': workspace:*
|
||||
'@element-plus/build-constants': workspace:*
|
||||
'@element-plus/build-utils': workspace:*
|
||||
'@element-plus/icons-vue': ^2.0.3
|
||||
'@element-plus/icons-vue': ^2.0.5
|
||||
'@element-plus/metadata': workspace:*
|
||||
'@iconify-json/ri': ^1.1.1
|
||||
'@types/markdown-it': ^12.2.3
|
||||
@ -191,7 +191,7 @@ importers:
|
||||
vue: ^3.2.33
|
||||
dependencies:
|
||||
'@docsearch/js': 3.0.0
|
||||
'@element-plus/icons-vue': 2.0.3_vue@3.2.33
|
||||
'@element-plus/icons-vue': 2.0.5_vue@3.2.33
|
||||
'@element-plus/metadata': link:../internal/metadata
|
||||
'@vue/shared': 3.2.33
|
||||
'@vueuse/core': 8.5.0_vue@3.2.33
|
||||
@ -377,7 +377,7 @@ importers:
|
||||
packages/element-plus:
|
||||
specifiers:
|
||||
'@ctrl/tinycolor': ^3.4.1
|
||||
'@element-plus/icons-vue': ^2.0.3
|
||||
'@element-plus/icons-vue': ^2.0.5
|
||||
'@floating-ui/dom': ^0.5.0
|
||||
'@popperjs/core': npm:@sxzz/popperjs-es@^2.11.7
|
||||
'@types/lodash': ^4.14.182
|
||||
@ -397,7 +397,7 @@ importers:
|
||||
vue-router: ^4.0.15
|
||||
dependencies:
|
||||
'@ctrl/tinycolor': 3.4.1
|
||||
'@element-plus/icons-vue': 2.0.3_vue@3.2.33
|
||||
'@element-plus/icons-vue': 2.0.5_vue@3.2.33
|
||||
'@floating-ui/dom': 0.5.0
|
||||
'@popperjs/core': /@sxzz/popperjs-es/2.11.7
|
||||
'@types/lodash': 4.14.182
|
||||
@ -458,7 +458,7 @@ importers:
|
||||
|
||||
play:
|
||||
specifiers:
|
||||
'@element-plus/icons-vue': ^2.0.3
|
||||
'@element-plus/icons-vue': ^2.0.5
|
||||
'@vitejs/plugin-vue': ^2.3.3
|
||||
unplugin-vue-components: ^0.19.5
|
||||
vite: ^2.9.9
|
||||
@ -466,7 +466,7 @@ importers:
|
||||
vite-plugin-mkcert: ^1.6.0
|
||||
vue: ^3.2.33
|
||||
dependencies:
|
||||
'@element-plus/icons-vue': 2.0.3_vue@3.2.33
|
||||
'@element-plus/icons-vue': 2.0.5_vue@3.2.33
|
||||
vue: 3.2.33
|
||||
devDependencies:
|
||||
'@vitejs/plugin-vue': 2.3.3_vite@2.9.9+vue@3.2.33
|
||||
@ -1971,8 +1971,8 @@ packages:
|
||||
vue: 3.2.33
|
||||
dev: false
|
||||
|
||||
/@element-plus/icons-vue/2.0.3_vue@3.2.33:
|
||||
resolution: {integrity: sha512-dI9hazWIJF5AXsFDWLsdGqVIQMJ5Kq70fw1RScuMW6+UNqfJpRYFOqhya8RHpjajIZZnQx260Ll9AjTcu2HSOA==}
|
||||
/@element-plus/icons-vue/2.0.5_vue@3.2.33:
|
||||
resolution: {integrity: sha512-jvNWyKcdvPvMDLTWjghrPY+bYHKqh7hbAFIPe+HWR073zilzt33csREzmKx3VwhdlJUW5u0nCqN+0rwI8jlH+w==}
|
||||
peerDependencies:
|
||||
vue: ^3.2.0
|
||||
dependencies:
|
||||
@ -8063,7 +8063,7 @@ packages:
|
||||
dev: true
|
||||
|
||||
/lodash.sortby/4.7.0:
|
||||
resolution: {integrity: sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=}
|
||||
resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==}
|
||||
dev: true
|
||||
|
||||
/lodash/4.17.21:
|
||||
|
Reference in New Issue
Block a user