JS打包工具 Vite

ops/2024/10/20 11:53:30/

Vite是 JS 新一代的打包的工具,它所解决的问题,是前端打包慢的问题,随着前端应用复杂度越来越大,项目文件越来越多,通常项目中都是使用 Webpack 进行打包,Webpack是个静态的打包工具,每次改动都会打包所有文件,即使使用 HMR,速度也是很慢。
Vite 的推出旨在加速打包,提高前端开发效率,Vite 的核心就是将项目的代码分为两个部分,一部分是类库,另外一部分是应用逻辑代码。对于类库,开发中是不会修改的,这部分代码只要启动了 dev-server,打包一次,就可以保持不动。大部分前端的开发工作还是在写业务代码、写 CSS,由于都是基于框架开发,类库很多也很大,很明显这种分离可以使代码转换速度提高很多。Vite主要采用了以下几种手段来提高性能:

基于 ESM

ESM 是通过 ES2015 进行模块化,最新的浏览都已经支持ESM,所以可以借助浏览器进行解析,从而减少了代码转换的性能开销。

依赖编译加速

通过esbuild对依赖进行打包,esbuild是 go 语言开发的,性能是 JS打包工具的 10到 100 倍。

业务源代码转换

在业务源代码中,包含 CSS、JS 等需要转换的文件,并不是所有文件都要第一次启动时就进行转换,Vite 中只有文件被请求才会转换,可以看下图,代码做了切分,当前页面不需要的文件不转换。

在这里插入图片描述

组件更新

在 Vite 中,组件变更时,只会将自己以及临近的依赖进行更新,大多时候只会更新自己,并不会对整个应用进行转换打包。

我们来看一个简单的示例,首先初始化并启动项目:

npm create vite@latest my-vue-app -- --template vue
cd my-vue-app
npm i
npm run dev

进入 dev tools,看到并没有 dist 目录,而是直接访问 main.js。可以体验一下,确实速度很快,首次进入比 vuecli快太多了。
在这里插入图片描述
Vite 确实很快,但是目前可能还不能完全替代 webpack,Vite 是不支持老项目的,比如 vue2,现在有很多应用还是 vue2 开发的。


http://www.ppmy.cn/ops/5645.html

相关文章

【C语言】指针详解(五)

目录 1.字符指针 1.1常量字符串 2.指针数组 3.数组指针 1.字符指针 字符指针就是指向字符的指针,字符指针可以存储字符变量的地址。 举例如下: 定义指针变量pa存a的地址,改变*pa的值,a也会随之改变 。 1.1常量字符串 &#x1f…

OpenHarmony轻量系统开发【4】编写第一个程序、启动流程分析

摘要:本文简单介绍如何编写第一个hello world程序,以及程序是被执行的 适合群体:适用于Hi3861开发板,启动流程分析 4.1编写第一个程序 编写一个hello world程序比较简单,可以参考官网: https://gitee.c…

node基础 第二篇

01 ffmpeg开源跨平台多媒体处理工具,处理音视频,剪辑,合并,转码等 FFmpeg 的主要功能和特性:1.格式转换:FFmpeg 可以将一个媒体文件从一种格式转换为另一种格式,支持几乎所有常见的音频和视频格式,包括 MP…

C++练级之路——类和对象(中二)

1、运算符重载 C为了增强代码的可读性引入了运算符重载,运算符重载是具有特殊函数名的函数,也是具有其返回值类型,函数名字以及参数列表,其返回值类型和参数列表与普通的函数类似。 函数名字为:关键字operator后面接需…

4.3雷达建图与导航(冰达机器人实现)

4.3雷达建图与导航 4.3.1启动激光雷达和数据查看 本节内容介绍激光雷达的启动和雷达数据的查看 机器人端启动激光雷达roslaunch robot_navigation lidar.launch 此时查看话题列表就会发现多了一个scan话题,这个就是雷达发布的。看到这个话题说明雷达已经正常启动。…

使用PHP开发体育赛事直播平台,有这些缺点和优点

"东莞梦幻网络科技"作为体育直播平台开发领域的领导者,选择使用PHP开发体育赛事直播平台的现成源码,为什么会选择该语言,背后的选择理由可以从该技术的优点和缺点中找到答案。 一、优点1、易学易用与快速开发:PHP语言语…

启动 UE4编辑器报 加载 Plugin 失败

启动 UE4编辑器报 加载 Plugin 失败,报如下错误: Plugin ‘SteamVR’ failer to load because module ‘SteamVR’ could not be found. Please ensure the plugin is properly installed, otherwise consider disabling the plugin for this project. …

selenium篇-基础用法

Selenium WebDriver 是一款流行的自动化测试工具,用于模拟浏览器的各种操作。以下是一些Selenium WebDriver 中最常用的基本命令和方法摘要: 打开网页 (Get) 使用 get() 方法打开指定URL: Python 1driver.get("http://www.example.com&…