为什么要升级到 Vite 5?
当前这时候,前端工程化愈发成熟了着,构建工具所具备的性能这方面,它是直接对开发团队的效率产生影响的。针对于那些运用JeecgBoot低代码平台着手企业级项目开发的团队来讲,Vite 5所带来的提升可不是那种简简单单的版本号变动——它代表着有着更快速度的冷启动,有着更短时长的热更新延迟,还有着更为高效的生产构建。
要是你的JeecgBoot低代码项目这会儿依旧在Vite 4.x上运行着,那么这篇指南会助力你顺顺利利地达成升级,并且亲自目睹切实存在的性能提升。
升级前的环境准备
在动手之前,首先确认你的 Node.js 版本满足要求:
若你仍处于 Node 16 版本或者比其更早的版本状态,那么建议你首先去完成 Node 环境的提升等级操作,不然的话,Vite 5 就不能够正常地开展运行活动了。
依赖包升级清单
当 JeecgBoot 低代码项目进行升级到 Vite 5 这个操作的时候,存在着两个关键依赖,而这两个关键依赖是需要去同步更新的。
依赖包最低版本要求说明
unocss
v0.58.3+
原子化 CSS 引擎,需适配 Vite 5
vite-plugin-html
v3.2.1+
HTML 模板插件,新版支持 Vite 5
执行以下命令完成依赖升级:
pnpm update unocss vite-plugin-html
核心代码修改
在升级进程里,唯一要手动加以调整的代码处在 build/vite/plugin/html.ts 文件之中。于 createHtmlPlugin 的配置对象内,需增添 viteNext: true 这个参数,而这是 vite - plugin - html 为了实现与 Vite 5 新特性相兼容而给出的适配开关。
const htmlPlugin: PluginOption[] = createHtmlPlugin({
minify: isBuild,
viteNext: true,
inject: {
data: {
title: VITE_GLOB_APP_TITLE,
},
tags: isBuild ? [{
tag: 'script',
attrs: {src: getAppConfigSrc(),},
}] : [],
},
});
尽管这个改动仅仅只有一行,然而它却是整个升级能够成功与否的关键所在,要是缺失这个参数,那么就会致使构建阶段的 HTML 注入遭遇失败。
已知兼容性问题
完成升级之后,于启动之际或者构建之时,你兴许会瞧见源自@rys - fe/vite - plugin - theme插件的警告讯息。需要明晰于此的是:此警告不会对实际功能予以影响,仅只是鉴于这个主题插件还没有全然适配Vite 5的全新API。只需静静等待插件作者去发布更新版本就行啦,用不着为此而回退升级。
真实性能对比数据
对于升级之后的效果究竟怎样,要靠数据来进行表明。下面所呈现的是,JeecgBoot低代码项目在Vite 4.4.9以及Vite 5.0.11这两者之间的实际测试对比情况:
指标Vite 4.4.9Vite 5.0.11提升幅度
冷启动时间
13 秒
8 秒
38%
首屏加载时间
24 秒
20 秒
19%
生产构建时间
3 分 28 秒
2 分 56 秒
15%
冷启动的时间,由原本的十三秒,被压缩至于八秒,这也意味着,每当再次启动开发服务器之时,都能够节省差不多五秒。在那种频繁进行修改配置,从而需要重新启动的场景之下,这样的提升,通过一点点积累,成为了很多,显得极为可观。
升级步骤汇总
将整个升级流程归纳为四步,方便快速执行:
确认,Node.js 版本要大于或等于 18 ,升级 unocss 到 v0.58.3 及以上版本,升级 vite - plugin - html 到 v3.2.1 及以上版本,修改 build/vite/plugin/html.ts ,添加 viteNext: true ,启动项目进行验证,忽略 theme 插件的兼容性警告,实践建议。
在团队协作的环境里,当执行升级这个操作时,建议先于一个独立的分支之上,去完成全部的修改,并且要进行充分的测试,在确认没有错误之后,再将其合入主干。特别需要予以关注的是,自定义Vite插件的兼容性问题——要是你的JeecgBoot低代码项目当中,引入了额外的第三方Vite插件,那就需要逐个去确认它们是不是支持Vite 5。
总结
Vite 5 的升级,对于 JeecgBoot 低代码平台项目,是一次具备低成本以及高回报特性的优化,整个过程里,涉及的代码改动非常少,然而带来的性能提升却极为显著,要是你追求更流畅的开发体验和更短的 CI/CD 构建周期,那么这次升级值得尽早去安排。
