位置: IT常识 - 正文

vite项目优化(项目优化管理工具)

编辑:rootadmin
vite项目优化

推荐整理分享vite项目优化(项目优化管理工具),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:项目优化设计,项目优化方法,优化项目 英文,项目优化是什么,web项目优化,项目优化是什么,vericut优化,项目优化管理工具,内容如对您有帮助,希望把文章链接给更多的朋友!

首先在讲述vite优化之前,我们先来分析一下和传统的项目管理构建工具的区别,以webpack为例,它是利用plugin插件和loader加载器对项目的所有模块和依赖统一通过入口文件进行编译,从而变成我们html所需要的js格式渲染我们的页面。

随着浏览器的发展,逐渐的已经支持了 ES 模块

因此Vite在设计时考虑在浏览器请求源码时进行转换并按需提供源码。根据情景动态导入代码,即只在当前屏幕上实际使用时才会被处理。

vite项目优化(项目优化管理工具)

优势: 这样就避免了随着应用体积的增大,导致了启动服务缓慢,一处代码更新界面需要数秒钟才能显示的问题。运行速度真的没得说。

同样的,作为一个新型的构建框架,也有很多的弊端。 缺点: 只能针对现代浏览器(ES2015+)、生态小等。

当然我们今天说的不止是这些,既然选择了vite框架,自然不会考虑浏览器的兼容性,我们更多的还是关注vite本身的性能。

优势即劣势

正是因为vite本身是动态加载的资源,当某个路由的依赖项比较多的时候,加上你可能使用了某些组件库的按需加载(比如element-plus),在进入页面时可谓是很慢,而且页面都是会像卡壳了一样刷新一次。

技术层观察的表现是,network加载了很多资源,同时在cmd终端会显示:

下午7:01:09 [vite] ✨ new dependencies optimized: element-plus/es/components/message-box/style/index下午7:01:09 [vite] ✨ optimized dependencies changed. reloading下午7:01:23 [vite] ✨ new dependencies optimized: element-plus/es/components/form/style/index下午7:03:57 [vite] vite.config.ts changed, restarting server...

这是因为需要按需写入组件与样式导致的,那么怎么解决这一问题呢,我们更希望在开发环境下,能提高我们的运行速度,而且让生成环境的包体积更小。然而,好像没有太好的解决方案,因为第一次按需加载按照vite的设计就必须要写入。

换个思路,那么我只能在开发环境下全局加载组件,打包时再执行按需加载了…

// 自定义插件 ./plugins/fullImportPluginimport * as path from 'path'import type { Plugin, ResolvedConfig } from 'vite'export default function fullImportPlugin () { let config: ResolvedConfig return <Plugin>{ name: 'fullImportElementPlus', async configResolved (conf) { config = conf }, transform (code, id) { // 判断当前处理的是否是 _src/main.ts_ if (path.join(config.root, 'src/main.ts') === id) { const name = 'ElementPlus' // 引入 ElementPlus 和 样式 const prepend = `import ${name} from 'element-plus';\nimport 'element-plus/theme-chalk/src/index.scss';\n` code = code.replace('.mount(', ($1) => `.use(${name})` + $1) return prepend + code } return code } }}// vite.config.tsimport { ElementPlusResolver } from 'unplugin-vue-components/resolvers'import unElementPlus from 'unplugin-element-plus/vite'import unComponents from 'unplugin-vue-components/vite'import fullImportPlugin from './plugins/fullImportPlugin'const config = {plugins:[]}if ( modes === 'development'){ config.plugins.push(fullImportPlugin())} else { config.plugins.push(unElementPlus({ useSource: true })) config.plugins.push(unComponents({ dirs:[], dts: true, resolvers: [ ElementPlusResolver() ] }))}export default config
本文链接地址:https://www.jiuchutong.com/zhishi/284109.html 转载请保留说明!

上一篇:最亮的投影机是什么(投影仪哪种光源亮度高)

下一篇:Win7系统利用家庭组把多台电脑资源共享的方法(win7家庭组怎么用)

  • 税务局报税怎么操作流程
  • 不同月份的发票能抵扣吗
  • 劳务公司临时工工资需要申报吗
  • 缴纳契约计税依据包含增值税吗
  • 不动产净值包括增值税吗
  • 汽车的购置税可以不交吗
  • 股权变更怎么缴税
  • 长期股权投资如何审计
  • 税控设备全额抵扣政策
  • 质量问题产生的影响
  • 汇算清缴时资产总额如何计算
  • 非正常损失对应的进项税额
  • 普票3点怎么算
  • 2017房地产行业流动比率均值
  • 未达到起征点销售额会计分录
  • 报销抵冲银行日记帐要怎么入帐?
  • 工程施工方安全责任
  • 员工离职再入职要重新签订合同吗
  • 企业所得税季度申报表季度平均值
  • 公司冲销费用凭证是什么
  • 购买礼品的会计科目
  • 暂存款转结余
  • 上市公司发行股票会计分录
  • 公司出售已经提完折旧的机器
  • 新公司成立的前期准备工作计划
  • 营改增后租金如何交税
  • 房地产会计核算地上地下成本分摊
  • 无形资产转让的会计处理
  • 提取法定盈余公积会计科目
  • 波士顿房价数据集可视化
  • 羊羊 过好
  • mysql 使用索引
  • 差旅费报销相关政策
  • 土地出让金相关政策
  • 免税农产品范围目录的文件
  • 加计扣除减免政策
  • 收到分红的会计科目
  • 所得税退税可以不退吗
  • 小规模纳税人和一般纳税人的界定标准
  • 租赁期间因占有、使用租赁物获得的收益
  • 息税前利润与盈亏平衡点
  • 短期借款的实际利率与现金折扣的关系
  • 企业租车流程
  • 捐赠人赞助属于什么会计科目
  • 电脑配件入账
  • 小企业固定资产折旧方法
  • 被法院扣的钱怎么又退回来了
  • 汇算期间取得以下收入
  • 发票开商品类别可以报销吗
  • mysql服务1053
  • jdbc连接MySQL实验总结
  • sqlserver远程连接设置
  • sql server怎么使用sql语句
  • 修改linux系统ip
  • VMware虚拟机安装苹果Mac OS
  • popblock.exe
  • 进去界面黑屏
  • linux find命令查找文件 name
  • Win10 Mobile Build 10586.29更新内容大全:修复多项问题
  • Win7升级win10后可以删除2345吗
  • linux将文本写入文件
  • win10系统自带虚拟机怎么用
  • python生成二维码添加图片
  • c#多线程应用
  • unityrpg
  • jquery跳出循环
  • CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放
  • pycharm如何使用
  • shell脚本 教程
  • javascript中判断数据类型的几种方法
  • android解析
  • jquery.treegrid
  • android按钮怎么放置在下方
  • js选中单选按钮
  • 十九届三中全会主题
  • 广东省电子税务局官网登录入口
  • 矿产资源税的计税依据
  • 特许权使用费包括哪些内容
  • 请问到税务局办里退税都需要什么手续
  • 包角计算公式推导
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设