位置: IT常识 - 正文

【vite+vue3.2 项目性能优化实战】使用vite-plugin-cdn-import进行CDN加速优化项目体积(vue3项目搭建)

编辑:rootadmin
原力计划【vite+vue3.2 项目性能优化实战】使用vite-plugin-cdn-import进行CDN加速优化项目体积

推荐整理分享【vite+vue3.2 项目性能优化实战】使用vite-plugin-cdn-import进行CDN加速优化项目体积(vue3项目搭建),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue3.0项目实战视频,vue3项目实战,vue3+ts+vite,vue3+ts+vite,vue3项目案例,vue3.0 vite,vue3项目案例,vue3.0 vite,内容如对您有帮助,希望把文章链接给更多的朋友!

CDN(Content Delivery Network)即内容分发网络,是一种通过在全球范围内分布式部署服务器来加速网络内容传输的技术。CDN加速的原理是,当用户请求访问某个资源时,CDN会根据用户的地理位置和网络状况,自动选择离用户最近的服务器来响应请求。如果该服务器上已经缓存了该资源,CDN会直接将缓存的资源返回给用户,从而减少了网络传输的时间和带宽消耗。

vite-plugin-cdn-import是一个Vite插件,它可以帮助我们在项目中引入CDN资源,从而提高项目的加载速度和性能。使用该插件,我们可以将一些常用的第三方库(如jQuery、Vue、React等)从本地文件中引入改为从CDN中引入,从而减少了网络请求和文件大小,提高了页面的加载速度。

本篇将使用vite-plugin-cdn-import插件 进行CDN加速优化项目。

vite-plugin-cdn-import插件官网:https://github.com/mmf-fe/vite-plugin-cdn-import

一、分析依赖视图

书接上文,我们使用rollup-plugin-visualizer分析依赖视图: 分析上图,我们发现整个项目依赖为581KB,其中vue体积占比42.75%,248.75KB大小,其次是vue-router占比17.56,而vue中的runtime-core/dist/runtime-core.esm-bundler.js这个包体积是最大的,181KB大小,占用整体消耗为31.12%。 使用Lighthouse分析过后发现首屏加载时间达到了惊人的7.7s,这是用户难以容忍的,先抛开别的原因不说,我们先使用cdn加速看看能降低多少。

二、CDN加速2.1、CDN管理插件vite-plugin-cdn-import

首先下载CDN管理插件依赖:npm install vite-plugin-cdn-import --save-dev

配置vite.config.ts,步骤与之前配置插件类似,先import依赖 import importToCDN from "vite-plugin-cdn-import"或者import { Plugin as importToCDN } from "vite-plugin-cdn-import"

【vite+vue3.2 项目性能优化实战】使用vite-plugin-cdn-import进行CDN加速优化项目体积(vue3项目搭建)

再将插件配置到plugins中;

再配置modules参数,参数的意义也很简单。 name:表示模块的名称 var:表示模块在全局作用域中的变量名,如果该属性未指定,则默认使用模块的名称作为变量名。path:表示模块在CDN中的路径。

import { Plugin as importToCDN } from "vite-plugin-cdn-import"export default defineConfig({ plugins: [ vue(), visualizer({ open: true, //注意这里要设置为true,否则无效 filename: "stats.html", //分析图生成的文件名 gzipSize: true, // 收集 gzip 大小并将其显示 brotliSize: true, // 收集 brotli 大小并将其显示 }), importToCDN({ modules: [ { name: "***", var: "***", path: "********", }, ], }), ],2.2、配置需要加速的依赖

国内外优秀的CDN 加速服务站点有很多,大家可以根据自己的需要选择,要注意的是:Vite 不会重写从外部文件导入的内容,我们需要使用支持 ESM 编译的 CDN站点

首先在package.json中查看自己需要加速的依赖的版本号,如vue是3.2.45的:

进入bootcdn后,根据自己的版本号找到对应的CDN网址: 复制,然后将其粘贴到对应的path当中,如:

importToCDN({ modules: [ { name: "vue", var: "Vue", path: "https://unpkg.com/vue@3/dist/vue.global.js", }, ], }),

当然要图简单的话,vite-plugin-cdn-import还为我们提供了自动导入CDN的功能(autoComplete),有很多常用的依赖不需要自己再找(如vue、reac、antd、axios等),autoComplete功能可以在文档中查找使用。

2.3、记得在main.ts中引入模块

就是在main.ts引入对应模块然后挂载,注意名称要和你CDN加速的name名称相同,不然引不进来,一般不用怎么修改,只有遇到问题后再检查一下自己是不是忘记引入或者引入错误了。

最后,别忘了npm run build重新打包!

三、分析优化效果

重新打包后,视图如下: 可以看到,原先的vue依赖包和vue-router依赖包全部消失了,整个项目依赖缩小到了72.53KB(原先是五百多KB)。这是因为我们使用了CDN加速,这两个以后不再单独打包到项目当中,大大降低了整个项目的体积。

四、注意

需要注意以下几点:

CDN资源的版本问题:使用CDN资源时,需要注意资源的版本问题。如果使用的是不稳定的版本,可能会导致一些问题。建议使用稳定版本的CDN资源。CDN资源的可用性:使用CDN资源时,需要注意资源的可用性。如果使用的CDN资源不可用,可能会导致您的应用程序无法正常运行。建议使用可靠的CDN服务提供商,并在必要时自己搭建CDN服务,推荐使用:腾讯云CDN服务环境的配置:开发环境和部署环境CDN加速的方式可能不一样。

CDN加速虽然可以提高网站的访问速度和用户体验,但是也需要投入一定的成本和精力进行部署和管理,同时需要注意安全和缓存管理问题。

本文链接地址:https://www.jiuchutong.com/zhishi/293736.html 转载请保留说明!

上一篇:股东以固定资产入股怎么做账(股东以固定资产入股需要交税吗)

下一篇:冰川湾国家公园里的兰普鲁冰川,美国阿拉斯加州 (© Andrew Peacock/Getty Images)(冰川湾国家公园的冰川不止有白色一种)

  • 苹果11如何给app上锁(苹果11如何给相册设置密码锁)

    苹果11如何给app上锁(苹果11如何给相册设置密码锁)

  • 电脑假开机(假开机状态)

    电脑假开机(假开机状态)

  • 绑定号码呼叫什么意思(什么叫做绑定号码呼叫)

    绑定号码呼叫什么意思(什么叫做绑定号码呼叫)

  • 微信头像不清晰解决办法(微信头像不清晰,点开查看又是清晰的)

    微信头像不清晰解决办法(微信头像不清晰,点开查看又是清晰的)

  • 钉钉悬浮窗看抖音算时间吗(钉钉悬浮窗看抖音会不会计入时长)

    钉钉悬浮窗看抖音算时间吗(钉钉悬浮窗看抖音会不会计入时长)

  • 小天才手表怎么截屏(小天才手表怎么添加联系人电话)

    小天才手表怎么截屏(小天才手表怎么添加联系人电话)

  • 淘宝退换货为什么要封账号(淘宝退换货为什么不能评价)

    淘宝退换货为什么要封账号(淘宝退换货为什么不能评价)

  • 无雾加湿器和有雾加湿器区别(无雾加湿器和有雾加湿器哪个寿命长)

    无雾加湿器和有雾加湿器区别(无雾加湿器和有雾加湿器哪个寿命长)

  • 华为mate30后盖碎了(华为mate30后盖碎了能换吗)

    华为mate30后盖碎了(华为mate30后盖碎了能换吗)

  • 华为themes文件夹在哪里(华为themes文件夹没有下载的主题)

    华为themes文件夹在哪里(华为themes文件夹没有下载的主题)

  • r5m330相当于什么显卡(r5m320相当于什么显卡)

    r5m330相当于什么显卡(r5m320相当于什么显卡)

  • 来微信不显示在屏幕上怎么弄(来微信不显示在屏幕上怎么弄苹果手机)

    来微信不显示在屏幕上怎么弄(来微信不显示在屏幕上怎么弄苹果手机)

  • 华为p40出厂有贴膜吗(p40出厂带贴膜吗?)

    华为p40出厂有贴膜吗(p40出厂带贴膜吗?)

  • itunes store无法使用(itunea store无法)

    itunes store无法使用(itunea store无法)

  • vivox9像素(vivox9像素多少万像素)

    vivox9像素(vivox9像素多少万像素)

  • gw格式文件怎么打开(gw格式怎么转换成pdf)

    gw格式文件怎么打开(gw格式怎么转换成pdf)

  • 手机怎么设置夜间模式(手机怎么设置夜间关机)

    手机怎么设置夜间模式(手机怎么设置夜间关机)

  • 手机qq说说如何取消私密(手机qq说说如何开启评论审核)

    手机qq说说如何取消私密(手机qq说说如何开启评论审核)

  • 抖音里作品怎么删除(抖音里作品怎么删掉)

    抖音里作品怎么删除(抖音里作品怎么删掉)

  • 豌豆荚怎么用(豌豆荚怎么用微信充值)

    豌豆荚怎么用(豌豆荚怎么用微信充值)

  • 小爱同学为什么不能语音唤醒(小爱同学为什么连接不上蓝牙)

    小爱同学为什么不能语音唤醒(小爱同学为什么连接不上蓝牙)

  • 快手5分钟视频怎么发(快手五分钟以上的视频)

    快手5分钟视频怎么发(快手五分钟以上的视频)

  • 华为荣耀v20怎么隐藏应用(华为荣耀v20怎么显示步数)

    华为荣耀v20怎么隐藏应用(华为荣耀v20怎么显示步数)

  • 手机屏幕白斑形成原因(手机屏幕白斑是怎么回事儿)

    手机屏幕白斑形成原因(手机屏幕白斑是怎么回事儿)

  • avgregcl.exe进程是病毒吗 avgregcl是什么进程 能结束吗(电脑进程ace是什么)

    avgregcl.exe进程是病毒吗 avgregcl是什么进程 能结束吗(电脑进程ace是什么)

  • 这可能是最好、最详细的VSCode开发uni-app教程吧(这可能是最好的144平米小平层户型)

    这可能是最好、最详细的VSCode开发uni-app教程吧(这可能是最好的144平米小平层户型)

  • 关税完税价格是离岸价还是到岸价
  • 增值税申报表上的销售收入
  • 小规模纳税人怎么办理
  • 车船税每年都要交吗,一般是多少钱交强险可以晚交吗
  • 收到发票冲红怎么做分录
  • 可供出售金融资产和长期股权投资
  • 礼品费如何报销
  • 贴息为什么要付利息呢
  • 汇总记账凭证长什么样
  • 报销粘贴单怎么写
  • 逾期支付工程款利息计算
  • 售后回租的实际操作流程
  • 企业发生的间接生产费用应
  • 个人开增值税普票有没有限额
  • 新三板公司股东人数
  • 购买办公家具合同
  • 免交的增值税怎么退
  • 小规模核定征收税率
  • 金税盘发票份数没有显示
  • 金融企业贷款利息的账务处理
  • 网卡和网线都正确接法
  • php正则表达式实例
  • thinkphp 路由
  • 要求快速启动
  • php date_diff
  • 如何把itunes的音乐导入ipod
  • u盘win10系统安装教程
  • win11预览版dev改beta
  • 固定资产抵债债权人账务处理
  • 实收资本的会计编码
  • 汇算清缴怎么调减
  • 火车票抵扣进项税怎么申报填写
  • 出口销售折扣怎么处理
  • 城市维护建设税,教育费附加,地方教育费附加
  • 通用机打发票可以查验吗
  • 发票上多盖了一个发票章
  • 什么是死锁,死锁的四个必要条件
  • 长期股权投资大白话解释
  • 银行每月贷款额度有多少
  • 税是什么为什么要交税
  • 增值税附加税的比例
  • 累计摊销的会计分录有哪些
  • 免税的会计分录有哪些
  • 增值税增量留抵退税进项构成比例
  • 劳务报酬税目
  • 房地产增值税发票是什么意思
  • 买二手办公用品
  • 维护费要交税吗
  • 财政返还什么意思
  • 个体工商户的建筑劳务是否需要资质
  • 支票上的金额和确定的金额
  • sqlserver获取当前年
  • mysql两个表连接
  • mysql中索引有什么用
  • mysql 正则表达式分组替换
  • windows预览版
  • win10+Ubuntu16.04 LTS双系统完美教程(图文教程)
  • 远程桌面连接 server 2016
  • windows8出现蓝屏
  • smagent.exe - smagent是什么进程
  • linux设置网络ip地址
  • linux命令行在哪
  • win7系统如何
  • win8磁盘占用率100%
  • win7 64位系统怎么查看串口号?
  • ubuntu怎么将文件传送到电脑
  • win10预览体验win11
  • 【学习ARToolkit小记之初】 ARToolkit在VS2010(Win7 64位)下的配置及第一个开发程序的编译与运行
  • json和ui
  • java调用curl命令
  • pythonweb框架有哪些
  • python def用法理解
  • js html css
  • android之Java+html+javascript混合开发
  • shell 1
  • unity gpu优化
  • js实现简单排列的方法
  • 虚拟摇杆 安卓
  • javascript中array数组对象的含义及常用方法
  • 东营为什么没有疫情
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设