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

  • 用现金支付的没有发票怎么办
  • 企业之间交换房屋 契税
  • 取得社会团体会费专用票据可以税前扣除吗
  • 主税零申报附加税怎样申报
  • 固定资产折旧计算公式
  • 分公司一定要汇总申报吗
  • 软件开发成本核算模板
  • 定期定额纳税申报表应税项应填哪个数
  • 设计原始凭证所需内容及步骤
  • 超市费用能否税前扣减?
  • 专票已认证但又没有发票
  • 长期应付款预算会计
  • 抵账房产财务入账
  • 生产出来的次品怎么入账
  • 延期付款利息的税率是多少
  • 本月预估是什么意思
  • 建筑业外出经营管理办法
  • 全国增值税发票查询平台 手机版
  • 地下建筑如何防潮
  • 车辆购置税退税条件
  • 疏通下水道入什么经络
  • 主营业务收入多计跨年调整
  • 无线电路问题
  • 抵扣给供货商预缴税款
  • 汽车销售公司购买车辆会计科目
  • 个税的适用税率有哪些
  • 财政部土地出让收支管理办法
  • 什么情形不属于经警告无效人民警察可以使用武器的情形
  • blender不支持win7
  • 商业银行贷款的三种基本形式
  • javascript基础语法
  • php错误级别有哪些
  • 管理费用属于产品成本项目的费用吗
  • 不合格的设备怎么处理
  • 【简陋Web应用2】人脸检测——基于Flask和PaddleHub
  • html怎么用java
  • php身份证号码验证
  • Linux下DedeCMS/织梦CMS安全设置教程
  • python查找列表元素
  • 购买电子承兑差额是多少
  • 固定资产盘盈、盘亏的账务处理?
  • 固定资产清理的金额怎么算
  • 社保缴费基数是怎么确定的
  • 进项税额转出最后怎么处理
  • 银行手续费必须有发票才能入账吗
  • 企业福利费超过预算收入
  • 没有盈利的公司
  • 股东入股资金如何记账
  • 事业单位会计准则与政府会计准则的区别
  • 买理财产品的风险
  • 物流辅助服务包含哪些内容
  • 本月留抵增值税
  • 公司主要产品
  • 包装物是指什么
  • 职工薪酬费用属于什么费用
  • 社保如何做分录报销
  • 新成立的公司哪个地方能查到
  • 上市公司应付会计
  • 房子装修费要交税吗
  • 应收账款增加说明企业什么
  • session几种存储方式
  • 苹果os X El capitan无法更新了吗
  • win7系统宽带连接651
  • 一句命令
  • 组装机没有装系统开机会怎么样
  • macbook移到废纸篓
  • win7命令提示符怎么以管理员身份运行
  • win8开机进入开始界面
  • 安装linux出现grub的原因
  • js date()
  • 深入理解
  • cocos2d怎么用
  • 批处理生成excel
  • powercli命令
  • js == ===区别
  • 引用jquery后没反应
  • 一般纳税人每月开票金额有限额吗
  • 乌市沙区医保局电话是多少
  • 会议服务费属于什么类别
  • 国税局地税局合并的必要性有哪些内容
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设