Commit 91f9735b by lijiabin

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

parent a9d6c4ab
/// <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' {
......@@ -7,11 +14,9 @@ declare module 'virtual:push-update' {
export default updateInfo
}
declare module 'vue' {
interface ComponentCustomProperties {
dayjs: typeof dayjs
}
}
// 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(() => {
setTimeout(() => {
initWxConfig()
}, 3000)
console.table(__CORE_LIB_VERSION__)
}
})
</script>
......@@ -13,10 +13,28 @@ import pushUpdatePlugin from './src/plugins/pushUpdatePlugin'
import IconsResolver from 'unplugin-icons/resolver'
import Icons from 'unplugin-icons/vite'
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/
export default defineConfig(({ mode }) => {
return {
define: {
__CORE_LIB_VERSION__: JSON.stringify(coreLibVersion),
},
resolve: {
//设置别名
alias: {
......@@ -75,19 +93,31 @@ export default defineConfig(({ mode }) => {
// },
},
build: {
minify: false,
minify: 'esbuild',
chunkSizeWarningLimit: 1000,
rollupOptions: {
output: {
assetFileNames: 'assets/[ext]/[name]-[hash][extname]',
chunkFileNames: 'assets/js/[name]-[hash].js',
manualChunks: (id) => {
if (id.includes('node_modules')) {
// console.log(id)
if (id.includes('element-plus')) {
return 'element-plus'
} else if (id.includes('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'
}
......
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