Commit 91f9735b by lijiabin

【需求 17679】 perf: 打包优化加入核心库版本等

parent a9d6c4ab
/// <reference types="vite/client" /> /// <reference types="vite/client" />
import dayjs from 'dayjs' declare const __CORE_LIB_VERSION__: {
vue: string
'vue-router': string
'element-plus': string
pinia: string
unocss: string
node: string
}
// 声明虚拟模块 // 声明虚拟模块
declare module 'virtual:push-update' { declare module 'virtual:push-update' {
...@@ -7,11 +14,9 @@ declare module 'virtual:push-update' { ...@@ -7,11 +14,9 @@ declare module 'virtual:push-update' {
export default updateInfo export default updateInfo
} }
declare module 'vue' {
interface ComponentCustomProperties {
dayjs: typeof dayjs
}
}
// src/types/wangeditor.d.ts // src/types/wangeditor.d.ts
declare module '@wangeditor/editor-for-vue' {} declare module '@wangeditor/editor-for-vue' {
const Editor: any
const Toolbar: any
export { Editor, Toolbar }
}
...@@ -16,6 +16,7 @@ onMounted(() => { ...@@ -16,6 +16,7 @@ onMounted(() => {
setTimeout(() => { setTimeout(() => {
initWxConfig() initWxConfig()
}, 3000) }, 3000)
console.table(__CORE_LIB_VERSION__)
} }
}) })
</script> </script>
...@@ -13,10 +13,28 @@ import pushUpdatePlugin from './src/plugins/pushUpdatePlugin' ...@@ -13,10 +13,28 @@ import pushUpdatePlugin from './src/plugins/pushUpdatePlugin'
import IconsResolver from 'unplugin-icons/resolver' import IconsResolver from 'unplugin-icons/resolver'
import Icons from 'unplugin-icons/vite' import Icons from 'unplugin-icons/vite'
import path from 'node:path' import path from 'node:path'
import fs from 'node:fs'
// 获取到执行脚本的--参数
const packageJson = JSON.parse(
fs.readFileSync(path.resolve(process.cwd(), 'package.json'), 'utf-8'),
)
// 核心库版本
const coreLibVersion = {
vue: packageJson.dependencies.vue,
'vue-router': packageJson.dependencies['vue-router'],
'element-plus': packageJson.dependencies['element-plus'],
pinia: packageJson.dependencies.pinia,
unocss: packageJson.devDependencies.unocss,
node: process.versions.node,
}
// https://vite.dev/config/ // https://vite.dev/config/
export default defineConfig(({ mode }) => { export default defineConfig(({ mode }) => {
return { return {
define: {
__CORE_LIB_VERSION__: JSON.stringify(coreLibVersion),
},
resolve: { resolve: {
//设置别名 //设置别名
alias: { alias: {
...@@ -75,19 +93,31 @@ export default defineConfig(({ mode }) => { ...@@ -75,19 +93,31 @@ export default defineConfig(({ mode }) => {
// }, // },
}, },
build: { build: {
minify: false, minify: 'esbuild',
chunkSizeWarningLimit: 1000,
rollupOptions: { rollupOptions: {
output: { output: {
assetFileNames: 'assets/[ext]/[name]-[hash][extname]', assetFileNames: 'assets/[ext]/[name]-[hash][extname]',
chunkFileNames: 'assets/js/[name]-[hash].js', chunkFileNames: 'assets/js/[name]-[hash].js',
manualChunks: (id) => { manualChunks: (id) => {
if (id.includes('node_modules')) { if (id.includes('node_modules')) {
// console.log(id)
if (id.includes('element-plus')) { if (id.includes('element-plus')) {
return 'element-plus' return 'element-plus'
} else if (id.includes('vue')) { } else if (id.includes('vue')) {
return 'vue' return 'vue'
} else if (id.includes('lodash-es')) {
return 'lodash-es'
} else if (id.includes('dayjs')) {
return 'dayjs'
} else if (id.includes('lodash-es')) {
return 'lodash-es'
} else if (id.includes('axios')) {
return 'axios'
} else if (id.includes('wangeditor')) {
return 'wangeditor'
} }
// console.log(id)
return 'vendor' return 'vendor'
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment