位置: 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家庭组怎么用)

  • 私立幼儿园需要纳税吗
  • 分税制财政管理体制是什么?
  • 补报以前年度收入后当年所得税怎么处理
  • 周转材料低值易耗品的会计处理
  • 借贷记账法的基本结构
  • 用友会计报表
  • 接受资不抵债并账会计分录
  • 小规模纳税人免税怎么做账
  • 什么企业可以开增值税专用发票
  • 个税计提和发放分录
  • 发票抬头类型怎么选 个人不能报销吗
  • 出口免税进项税额转出会计分录
  • 关联企业往来业务包括
  • 多计提的工资怎么处理?
  • 印花税计税依据是销售收入吗
  • 分派现金股利会计科目
  • 小规模纳税人开专票
  • 主营业务税金及附加包括印花税吗
  • 进项税的现金流怎么填
  • 取得不动产时的作价
  • 应纳税所得额应纳税额公式
  • 自然灾害造成的存货净损失计入什么科目
  • 集团公司奖励发放遵循什么原则
  • 定额发票上除了发票章还有其他章吗
  • 金蝶k3购货发票怎么点击记账
  • 公司名下的房产出租需要交哪些税
  • 向人力资源公司辞职怎么说
  • 减免税备案申请表范文
  • 非主营业务收入记什么
  • MAC系统如何卸载重装安装W7系统
  • win10 20h1 bug
  • 已认证的发票退货怎么处理
  • 数字证书认证系统
  • 制药厂副产品
  • win11不能用u盘
  • 作为一名程序员应该掌握哪些语言
  • 总结关于现金清查的会计核算分录
  • 政府补助的会计处理分录
  • 报废汽车残值收入如何计税
  • 微信小程序几几年上线的
  • 尚融资本
  • ajax提交表单数据
  • 应交税金科目应不应该有余额
  • 企业收到的国外发票可以入账吗
  • 让渡资产属于什么
  • 预缴所得税年底处理账务吗
  • 两者有什么区别用英语怎么说
  • 新公司成立的文案
  • 冲回多提的坏账准备会计分录
  • 餐饮行业分录大全
  • 息税前利润的计算公式中的利息费用
  • 进口货物的会计分录
  • 出口报关金额怎么算
  • 过账发票和不过票的区别
  • 咨询服务行业的收入与成本
  • 电费发票没拿到怎么做账
  • 企业的培训费用
  • 医疗器械行业进货未取得发票怎么做会计分录的
  • 三证合一后还有纳税人资格证吗
  • 建账的基本要求
  • 企业固定资产标准最新规定
  • mysql 常用
  • 虚拟机linux端mysql数据库无法远程访问的解决办法
  • mysql数据库详解
  • 怎么才能使牙齿变白
  • windows查看电池信息
  • cpu资源占用率计算原理
  • 复制打开网页
  • linux cpan
  • 简单 粗暴
  • cocos2d-js游戏开发
  • Unity3D游戏开发标准教程
  • u3d unity3d
  • js动态改变网页标题
  • jquery基础教程详解
  • 查验发票真伪
  • 一般纳税人办理退税流程及手续
  • 百旺税控盘口令错误被锁了怎么办
  • 什么是免抵税额和免抵退税额
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设