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

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"

再将插件配置到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加速,这两个以后不再单独打包到项目当中,大大降低了整个项目的体积。

四、注意

需要注意以下几点:

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

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

  • 32
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 24
    评论
创建 Vite + Vue3 + Element Plus 项目的步骤如下: 1. 确保已经安装了 Node.js 和 npm。 2. 打开终端或命令行工具,创建一个新的项目文件夹,并进入该文件夹。 3. 执行以下命令初始化一个新的 Vue 项目: ``` npm init @vitejs/app ``` 4. 在初始化过程中,你会被要求选择一个模板。选择 Vue 3 并按回车键确认。 5. 完成初始化后,进入项目文件夹,并安装 Element Plus: ``` cd your-project-name npm install element-plus ``` 6. 创建一个新的 Vue 组件,例如 `HelloWorld.vue`,并在其中引入 Element Plus 组件: ```vue <template> <div> <el-button type="primary">Hello World</el-button> </div> </template> <script> import { ElButton } from 'element-plus'; export default { components: { ElButton } } </script> ``` 7. 在 `main.js` 中引入 Element Plus 的样式和组件库: ```javascript import { createApp } from 'vue'; import App from './App.vue'; import 'element-plus/dist/index.css'; createApp(App).mount('#app'); ``` 8. 在 `App.vue` 中使用你刚刚创建的组件: ```vue <template> <div id="app"> <HelloWorld /> </div> </template> <script> import HelloWorld from './components/HelloWorld.vue'; export default { components: { HelloWorld } } </script> ``` 9. 运行以下命令启动开发服务器: ``` npm run dev ``` 10. 打开浏览器,在地址栏中输入 `http://localhost:3000`,即可看到运行中的 Vite + Vue3 + Element Plus 项目。 这样,你就成功创建了一个 Vite + Vue3 + Element Plus 项目。你可以根据自己的需求继续开发和定制化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中杯可乐多加冰

请我喝杯可乐吧,我会多加冰!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值