首页 > 其他分享 >[Vite] 优化前端打包

[Vite] 优化前端打包

时间:2024-10-26 10:59:01浏览次数:1  
标签:vue name visualizer 前端 js Vite import vite 打包

  1. 按需加载组件
  2. router 这里使用动态路由引入,如 component: () => import("@/views/Index.vue")
  3. JPG、PNG、SVG 等图片资源的压缩
  4. Gzip 压缩js、css、html,也要配置 Nginx 的 gzip
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";

import AutoImport from "unplugin-auto-import/vite";
import Components from "unplugin-vue-components/vite";
import { ElementPlusResolver } from "unplugin-vue-components/resolvers";

import { visualizer } from "rollup-plugin-visualizer";
import viteCompression from "vite-plugin-compression";
import viteImagemin from "vite-plugin-imagemin";

export default defineConfig(({ mode }) => {
  return {
    plugins: [
      AutoImport({
        imports: ["vue", "vue-router", "@vueuse/core"],
        resolvers: [ElementPlusResolver()]
      }),
      Components({
        resolvers: [ElementPlusResolver()]
      }),
      // 分析
      visualizer({
        open: false,
        filename: "visualizer.html"
      }),
      // 压缩
      viteCompression({
        deleteOriginFile: true // 源文件压缩后是否删除
      }),
      viteImagemin({
        // gif
        gifsicle: {
          optimizationLevel: 3, // 选择1到3之间的优化级别
          interlaced: false // 隔行扫描gif进行渐进式渲染
        },
        // png
        optipng: {
          optimizationLevel: 7 // 选择0到7之间的优化级别
        },
        // jpeg
        mozjpeg: {
          quality: 20 // 压缩质量,范围从0(最差)到100(最佳)。
        },
        // png
        pngquant: {
          quality: [0.8, 0.9], // Min和max是介于0(最差)到1(最佳)之间的数字,类似于JPEG。达到或超过最高质量所需的最少量的颜色。如果转换导致质量低于最低质量,图像将不会被保存。
          speed: 1 // 压缩速度,1(强力)到11(最快)
        },
        // svg
        svgo: {
          plugins: [
            {
              name: "removeViewBox"
            },
            {
              name: "removeEmptyAttrs",
              active: false
            }
          ]
        }
      })
    ],
    css: {
      preprocessorOptions: {
        scss: {
          api: "modern-compiler"
        }
      }
    },
    build: {
      rollupOptions: {
        output: {
          chunkFileNames: "js/[name]-[hash].js", // 引入文件名的名称
          entryFileNames: "js/[name]-[hash].js", // 包的入口文件名称
          assetFileNames: "[ext]/[name]-[hash].[ext]" // 资源文件
        }
      }
    },
    esbuild: {
      drop: ["console", "debugger"]
    }
  };
});

标签:vue,name,visualizer,前端,js,Vite,import,vite,打包
From: https://www.cnblogs.com/Himmelbleu/p/18503779

相关文章

  • 前端开发设计模式——工厂模式
    目录一、定义和特点1.定义2.特点二、实现方式三、使用场景1.创建复杂对象2.根据不同条件创建对象四、优点1.代码复用2.解耦对象创建和使用3.易于维护五、缺点1.增加代码复杂度2.工厂函数可能变得臃肿六、注意事项1.命名规范2.单一职责原则3.错误......
  • docker镜像打包并恢复
    保存Docker镜像的方式主要有三种,具体取决于你希望如何管理和分发镜像。下面是对这三种方式的总结:1.将已经可以运行的Docker容器打包成镜像这种方法通常不是直接“打包”容器为镜像,而是创建一个新的镜像,该镜像基于运行中的容器的状态。这意味着你可以对容器进行一系列操作(如......
  • 前端针对 XSS 安全配置
    参考https://layui.dev/notes/share/security-currentscript.htmlhttps://developer.mozilla.org/zh-CN/docs/Web/HTTP/CSPhttps://cloud.tencent.com/developer/article/2281491起因从Layui网站上看到XSS漏洞问题,了解到可以使用CSP防御XSS攻击方法正文还可以指......
  • 短视频app开发源码,骨架屏技术优化前端体验
    一、什么是骨架屏?骨架屏是一种在短视频app开发源码页面加载过程中,以占位符形式展示页面结构的技术。它通过显示简单的灰色块和线条,让用户在等待内容加载时获得视觉反馈,提高了用户的满意度。二、为什么需要骨架屏?在移动设备和慢速网络环境下,短视频app开发源码的页面加载速度变得......
  • 【Web前端】JavaScript 对象基础
     JavaScript是一种以对象为基础的编程语言,操作数据时,实际都是在处理对象。可以使用简单的数据类型(如字符串、数字和布尔值)来实现一些功能,但深入了解JavaScript对象的运作,将使你能够编写更强大和灵活的代码。对象基础JavaScript中,对象是由一组键(或属性)和值组成的无......
  • python+flask框架的基于微信小程序的高校实验室考勤管理系统的设计与实现前端8(开题+
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景关于高校实验室考勤管理问题的研究,现有研究主要集中在传统考勤系统的设计与实现上,如基于RFID、指纹识别等技术。然而,随着移动互联网技术的......
  • HTML一键打包EXE工具1.9.97更新 - 支持网络验证(添加卡密), 并修复若干问题, 附免费版
    HTML一键打包EXE工具(HTML转EXE,网址打包PC程序)是一款强大的应用程序,能够将任意HTML项目或网页转换为独立的EXE文件。这意味着无需额外安装浏览器或服务器,用户只需简单双击即可运行项目。无论您是在制作KRPano全景VR项目,开发WebGL游戏(如Egret、Cocos、RPGMVMaker),还是需要打包......
  • 提升前端开发效率的五种实用技术
    本文分享自天翼云开发者社区《提升前端开发效率的五种实用技术》,作者:大耳朵涂涂一、组件化开发:提高代码复用性和维护性组件化开发是一种将页面拆分成独立的可重用组件的开发方式。通过组件化开发,我们能够将复杂的界面逻辑拆分成独立的模块,提高代码的复用性和维护性。常用的组件......
  • 如何使用Docker在前端开发中
    ​​Docker在前端开发中的应用可以归纳为以下几点:一、实现环境的一致性和隔离;二、快速部署和测试前端应用;三、与后端服务集成,确保协同效率;四、管理和维护前端开发工具;五、Docker的优化与前端性能提升。接下来,让我们了解如何在前端开发中利用Docker来简化工作流程。一、实现环......
  • 如何成为一名前端开发者_1
    成为一名前端开发者的方法:1.建立基础知识;2.理解浏览器和DOM;3.学习前端框架和库;4.版本控制系统;5.响应式设计和跨浏览器兼容性;6.网络基础知识等。在你开始迈入前端开发的旅程之前,首先要确保你对基础知识有牢固的掌握。1.建立基础知识在你开始迈入前端开发的旅程之前,首先要确保你......