首页 > 其他分享 >Vite插件快速识别-性能篇

Vite插件快速识别-性能篇

时间:2022-12-21 17:57:00浏览次数:30  
标签:npm 插件 plugin Vite import 识别 vite defineConfig

Vite快速识别之性能篇

1、分包策略:浏览器重复请求相同名称的静态资源时,会直接使用缓存的资源。利用这个机制将不会经常更新的代码单独打包,减少 HTTP 请求降低服务器压力。
// vite.config.ts
import { defineConfig } from 'vite'

export default defineConfig({
  build: {
    rollupOptions: {
      output: {
        manualChunks: id => {
          // 将 node_modules 中的代码单独打包成一个 JS 文件
          if(id.includes('node_modules')) {
            return 'vendor'
          }
        }
      }
    }
  }
})
2、treeshaking(摇树优化):保证代码运行结果不变的前提下,去除无用的代码。Vue3默认使用Rollup,必须是ES6 module 模块,所以选择第三方库时尽量使用ESM版本
3、gzip 压缩,减少代码体积,提升网络性能(代码体积不是很大的话不建议使用 ),使用vite-plugin-compression插件实现
npm i vite-plugin-compression
// vite.config.ts
import { defineConfig } from 'vite'
import viteCompression from 'vite-plugin-compression'
export default defineConfig({
  plugins: [viteCompression()]
})
4、cdn 加速:内容分发网络就是从用户最近的服务器请求资源,提升网络请求速度,使用vite-plugin-cdn-import插件实现
npm i vite-plugin-cdn-import -D
// vite.config.ts
import { defineConfig } from 'vite'
import viteCDNPlugin from 'vite-plgin-cdn-import'

export default defineConfig({
  plugins: [
    viteCDNPlugin({
      // 需要 CDN 加速的模块
      modules: [
        {
          name: 'lodash',
          var: '_',
          path: `https://cdn.jsdelivr.net/npm/[email protected]/lodash.min.js`
        }
      ]
    })
  ]
})
5、图片压缩:对图片进行适当压缩使用vite-plugin-imagemin插件实现
npm i vite-plugin-imagemin -D
import { defineConfig } from 'vite'
import viteImagemin from 'vite-plugin-imagemin'

export default defineConfig({
  plugins: [
    viteImagemin({
     gifsicle: {
        optimizationLevel: 7,
        interlaced: false
      },
      optipng: {
        optimizationLevel: 7
      },
      mozjpeg: {
        quality: 20
      },
      pngquant: {
        quality: [0.8, 0.9],
        speed: 4
      },
      svgo: {
        plugins: [
          {
            name: 'removeViewBox'
          },
          {
            name: 'removeEmptyAttrs',
            active: false
          }
        ]
      }
    })
  ]
})
6、构建分析:npm run build ,构建成功之后会在根目录下生成一个 stats.html ,打开页面即可以看到分析结果,使用rollup-plugin-visualizer 插件实现
npm install rollup-plugin-visualizer -D
// vite.config.ts
import { defineConfig } from 'vite'
import { visualizer } from 'rollup-plugin-visualizer';

export default defineConfig({
  plugins: [
    // 将 visualizer 插件放到最后
    visualizer()
  ]
})

标签:npm,插件,plugin,Vite,import,识别,vite,defineConfig
From: https://www.cnblogs.com/kq981024/p/16996808.html

相关文章

  • Vite插件快速识别-开发篇
    Vite插件快速识别-日常开发篇1、打包构建后移除console.log和注释:vite官方自带//vite.config.tsimport{defineConfig}from'vite'exportdefaultdefineConfig({......
  • Electron-Vite快速识别
    构建Vite-electron项目npmielectron-vite-Dnpmcreate@quick-start/electronproject-name--templatevue-tsElectron的运行流程Electron进程一、主进程:有且......
  • Vite + Vue3导入 vue-i18n 插件
    使用Vite+Vue3导入vue-i18n插件Step1下载vue-i18n插件npminstallvue-i18nStep2新建local文件夹,创建index.jsindex.jsimport{createI18n}from"v......
  • KingbaseES V8R6 sslinfo 插件
    前言KingbaseES对使用SSL连接加密客户端/服务器通讯的本地支持,可以增加数据传输安全性。本文展示配置ssl连接,并通过安装一个插件验证ssl加密认证使用。一、配置ssl连接......
  • Argocd/Argocd Rolloouts/Argocd-cli/kubectl argo rollouts插件部署
    argocd部署官网​​https://argo-cd.readthedocs.io/en/stable/getting_started/​​部署地址参考​​https://argo-cd.readthedocs.io/en/stable/getting_started/​​​​......
  • 中学数学知识点实体识别
    中学数学知识点实体识别⚠️所有有关智慧教育的项目已完结停更,不再维护,感谢您的支持构建中学数学知识图谱的第一步是完成数学命名实体识别。1.Overview  本文定义是:中学数......
  • 机器学习——植物叶片病害识别
    机器学习——植物叶片病害识别一、选题背景随着现代科技的发展,人们对于人工智能领域的研究越发的深入。机器学习作为人工智能和识别领域研究的重要课题非常值得我们......
  • Vue-router4.0接口快速识别
    Vue-router4.0接口快速识别<router-link> :将会被渲染a标签属性名属性类型属性作用tostring/object相当于跳转调用router.push(string/object)replacebo......
  • PaddlePaddle 实现手写数字识别
    PaddlePaddle实现手写数字识别在这次实验中我们将使用PaddlePaddle来实现三种不同的分类器,用于识别手写数字。三种分类器所基于的模型分别为Softmax回归、多层感知器、......
  • 机器学习——人脸性别识别
    一、选题背景    人脸识别技术是模式识别和计算机视觉领域最富挑战性的研究课题之一,也是近年来的研究热点,人脸性别识别作为人脸识别技术的重要组成部分也受到了广......