[关闭]
@ys930126 2021-09-29T15:03:36.000000Z 字数 3953 阅读 37

Vue-cli迁移到Vite初体验


从0到1将一个Vue3.0+Vant-UI(v3.x)项目从Vue-cli迁移到Vite

你可能想知道

关于前端构建一些知识提纲
为什么选Vite?-官方

相关工具

wp2vite,一个将webpack项目转换为vite项目的工具


对比

参考来自 Vue-cli 与 Vite的区别-2021/2/22

对比 Vue-cli Vite
生态&社区 生态完善,历经检验 ✅ 后起之秀,根基不深
- 问题&解决方案多✅ 目前社区支持不够丰富
- 插件丰富✅ 目前插件不够丰富
- - -
兼容 兼容Vue2✅ 对Vue3兼容较好,Vue2可能会有问题
- 兼容部分旧版浏览器✅ 开发环境仅支持现代浏览器(ES6),生产可以根据配置
- 兼容CommonJS ✅ 不兼容CommonJS
- - -
开发&构建 开发和生产构建方式一致(基于webpack)✅ 开发和生产构建不一致(开发基于ESM,生产构建基于Rollup)
- 开发启动速度慢,HMR全量更新,响应较慢 开发启动速度一般,HMR按需更新,响应极快✅
- 开发生成将随着项目内容线性增长,时间复杂度O(n) 开发生成时间复杂度始终为O(1) ✅
- 基于webpack打包,打包后内容体积偏大 对比来说,打包基于Rollup,如使用 tree shake 打包后内容体积可适当缩小✅

此处输入图片的描述
此处输入图片的描述

迁移方案

  1. 使用 vite 创建一个新的项目,将项目文件逐步迁移过去
  2. 创建新分支,直接在新分支的文件上着手 本次迁移采用该方案

迁移过程


前后对比

对比环境采用相同用户在Chrome浏览器无缓存状态下的数据
使用AskBob-ORCP 术康服务包V1.2 ~/holderOrderList
机器环境:Mac os
Chrome版本:V93.0.4577.63
NodeJS: v16.9.1

对比 Vue-cli Vite 备注
开发环境 - - -
服务启动时长 25000ms±10000ms 700ms±100ms 速度提升20~35倍
HMR(热更新)时间 800±100ms 20ms± 几乎保存即生效
首次页面请求数(All) 17 412 Vite开发环境不打包直接import依赖,会导致页面请求内容较多,如css多级依赖
请求内容Size 7MB 5.6MB Vite 开发按需加载,无打包,内容较少
总耗时 1.98ms 1.92ms 总耗时会有闪动,基本持平
生产环境(模式es2015) - - -
产物大小 6MB 2.9MB 包大小减少50%
首次页面请求数(All) 19 16
页面内容Size 1.3MB 581K 页面内容减少60%
首次打开页面时间 5.04s 725ms 首次页面打开时间提升7倍

值得注意


坑&填坑

最下方有一些好心网友经验文档,建议按需查阅


其他人踩过的坑 🐶

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注