workPage 只有两个页面,但打包后文件过大,导致加载缓慢:
workPage-vendor.js - 2.99 MB (第三方库)workPage.js - 1.74 MB (应用代码)workPage.css - 562 KB (样式)修改文件: src/router/index2.js
// 之前:引入完整的 Element UI
import ElementUI from 'element-ui'
Vue.use(ElementUI)
// 优化后:按需引入
import { Dialog } from 'element-ui'
// 只引入 workPage 需要的组件
预计优化: 减少 ~400KB
修改文件: src/workPage/main.js
移除了以下不必要的依赖:
echarts (图表库,workPage 不需要)vue-video-player (视频播放器)vue-audio-better (音频播放器)v-viewer (图片查看器)hevue-img-preview (图片预览)clipboard (剪贴板功能)预计优化: 减少 ~800KB
修改文件: build/webpack.prod.conf.js, public/workPage.html
// webpack externals 配置
externals: {
'katex': 'katex' // 从 CDN 加载,不打包
}
<!-- workPage.html 添加 CDN -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js"></script>
预计优化: 减少 ~500KB
修改文件: src/router/index2.js
// 之前:同步加载
import workPage from '@/components/pages/workPage/index'
import workPageNew from '@/components/pages/workPage/index_new'
// 优化后:懒加载
const workPage = () => import(/* webpackChunkName: "workPage" */ '@/components/pages/workPage/index')
const workPageNew = () => import(/* webpackChunkName: "workPageNew" */ '@/components/pages/workPage/index_new')
效果: 只加载当前访问的页面,首屏加载更快
修改文件: config/index.js
productionGzip: true // 从 false 改为 true
效果: 文件传输体积减少 60-70%
如果 workPage 使用了 aws-sdk,建议:
富文本编辑器很大,建议:
npm run build
查看 dist/static/js/ 目录下的文件大小
npm run build --report
会自动打开浏览器显示打包分析报告
确保服务器启用 gzip 压缩:
Nginx 配置:
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_min_length 1000;
Apache 配置:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/json
</IfModule>
通过以上优化,workPage 的加载速度预计可以提升 3-5 倍,用户体验将显著改善。