vite和vue-cli实现原理和优化及区别

Vite:

1. 实现原理:

Vite 是一个基于 ESModule 的构建工具。它利用原生 ESModule 的特性,将每个文件作为一个模块,通过浏览器去解析和执行,而不需要提前将文件打包成一个单独的 bundle。Vite 利用浏览器的原生 ESModule 支持,实现了快速的开发环境启动和热模块替换(HMR)。

2. 优化策略:

Vite 在开发环境中通过将源代码直接发送到浏览器,避免了传统的打包过程,实现了更快的开发启动速度。此外,Vite 还通过按需加载模块和使用缓存来提高构建和打包的性能。

3. 区别:

  • 开发环境速度: Vite 的开发环境启动速度较快,因为它充分利用了原生 ESModule 的特性,避免了传统的打包过程。
  • 构建速度: 由于 Vite 在开发环境中的优势,构建速度通常也较快。
  • 依赖关系分析: Vite 可以更细粒度地分析依赖关系,实现按需加载,减小了构建体积。
  • 插件系统: Vite 使用了 Rollup 作为其构建引擎,这与 Vue CLI 使用的 Webpack 不同。这也导致了一些在插件系统上的不同。

Vue CLI:

1. 实现原理:

Vue CLI 使用 Webpack 作为默认的构建工具。Webpack 是一个模块打包工具,它将项目中的所有资源打包成一个或多个 bundle,以优化加载性能。Vue CLI 还支持其他构建工具,如 Parcel。

2. 优化策略:

Vue CLI 通过多个功能和插件来进行优化,包括代码分割、压缩、缓存等。通过 Webpack 提供的各种功能,Vue CLI 能够灵活地配置和优化构建输出。

3. 区别:

  • 开发环境速度: 在开发环境中,Vue CLI 的启动速度相对较慢,因为它需要进行完整的打包过程。
  • 构建速度: 由于使用了 Webpack,Vue CLI 在构建速度上可能相对较慢一些,尤其是在大型项目中。
  • 依赖关系分析: Webpack 在处理依赖关系时,可能不如 Vite 那样细粒度,因此可能存在一些冗余的模块。
  • 插件系统: Vue CLI 使用基于 Webpack 的插件系统,而 Webpack 生态相对成熟,有更多的插件可供选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/664017.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 热题 100 | 链表(中上)

目录 1 141. 环形链表 1.1 哈希表 1.2 快慢指针 2 142. 环形链表 II 2.1 哈希表 2.2 快慢指针 3 21. 合并两个有序链表 4 2. 两数相加 菜鸟做题第三周,语言是 C 1 141. 环形链表 1.1 哈希表 解题思路:遍历链表,在哈希表中…

Linux下grep命令详解

grep #文件内容过滤显示 #在指定的普通文件中查找并显示含有指定字符串的行,也可与管道符一起使用格式: grep-参数 查找条件 文件名 参数: 示例: [rootnode1 ~]# grep -n "root" /etc/passwd # -n&a…

Vue3学习记录(一)--- 组合式API之基础概念和变量声明

一、组合式API基础 1、简介 ​ 组合式 API (Composition API) 是Vue3和Vue2的v2.7之后版本中的全新特性,是一系列API的的集合(响应式API、生命周期钩子、依赖注入等等),其风格是基于函数的组合,以一种更直观、更灵活…

【Unity3D小技巧】Unity3D中UI控制解决方案

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 在开发中总是会控制UI界面,如何优雅的控制UI界面是…

02-Java抽象工厂模式 ( Abstract Factory Pattern )

抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂 该超级工厂又称为其他工厂的工厂 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类 每个生成的工厂都能按照工厂模式提供对象 …

CDS view与替代对象

一,简介 替代对象是指用一个CDS view指派给一个透明表或常规数据库视图,使得透明表或常规数据库视图的访问重定向到该CDS view。 替代有诸多要求: 字段数量一致且同名对应,顺序可以不一致对应的字段数据类型长度等必须一致CDS v…

在Linux下搭建自己的私有maven库并部署和发布自定义jar依赖和自定义maven插件(三)开发和发布自己开发的maven插件

系列文章目录 在Linux下搭建自己的私有maven库并部署和发布自定义jar依赖和自定义maven插件(二)发布自己开发的jar包 文章目录 系列文章目录在Linux下搭建自己的私有maven库并部署和发布自定义jar依赖和自定义maven插件(二)发布自己开发的jar包 前言一、插件需求二、maven自定…

前端JavaScript篇之对 rest 参数的理解、ES6中模板语法与字符串处理

目录 对 rest 参数的理解ES6中模板语法与字符串处理 对 rest 参数的理解 rest参数是一种在函数定义中使用的特殊语法,它允许函数接受任意数量的参数,并将它们收集到一个数组中。通俗地说,rest参数就像是一个容器,用来存放函数接收…

帮管客CRM SQL注入漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

2024年美赛B题:寻找潜水器 Searching for Submersibles 思路模型代码解析

2024年美赛B题:寻找潜水器 Searching for Submersibles 思路模型代码解析 【点击最下方群名片,加入群聊,获取更多思路与代码哦~】 问题翻译 海上游轮迷你潜艇(MCMS)是一家位于希腊的公司,专门制造能够将人…

如何在Windows部署GoLand并通过SSH远程连接Linux服务器

文章目录 1. 安装配置GoLand2. 服务器开启SSH服务3. GoLand本地服务器远程连接测试4. 安装cpolar内网穿透远程访问服务器端4.1 服务器端安装cpolar4.2 创建远程连接公网地址 5. 使用固定TCP地址远程开发 本文主要介绍使用GoLand通过SSH远程连接服务器,并结合cpolar内…

Vue 环境准备

1.安装vscode https://code.visualstudio.com/ 2.安装开发vue所需插件: Vetur —— 语法高亮、智能感知、Emmet等 包含格式化功能, AltShiftF (格式化全文),CtrlK CtrlF(格式化选中 代码,两…

在 Elastic Agent 中为 Logstash 输出配置 SSL/TLS

要将数据从 Elastic Agent 安全地发送到 Logstash,你需要配置传输层安全性 (TLS)。 使用 TLS 可确保你的 Elastic Agent 将加密数据发送到受信任的 Logstash 服务器,并且你的 Logstash 服务器从受信任的 Elastic Agent 客户端接收数据。 先决条件 确保你…

防御保护 防火墙的双机热备和带宽管理实验

需求: 办公区设备可以通过电信和移动链路上网(多对多的NAT,并需要保留一个公网IP不能用来转换)分公司设备可以通过总公司的移动和电信链路访问DMZ区的http服务器分公司内部的客户端可以通过公网地址访问到内部的服务器FW1和FW4组…

Unity | YooAssetV2.1.0 + HybridCLR热更新

目录 一、项目更改 二、使用YooAsset热更 1.资源配置 2.资源构建 3.将两个文件夹下的资源上传CDN服务器 4.修改代码 5.运行效果 本文记录利用YooAssetHybridCLR来进行资源和dll的更新。YooAsset使用的是新版V2.1.0。相比于旧版,dll(原生文件)和资源要建两个p…

AI-数学-高中-18-三角函数-同角三角函数关系及计算

原作者视频:三角函数】5同角三角函数关系(易中档)_哔哩哔哩_bilibili 辅助三角形(计算速度快):1.画一个辅助计算的任意直接三角形;2.利用初中方法先计算sin、cos、tan值;3.看象限确定…

Python机器学习:样本划分之验证集法

评估机器学习模型优劣的标准是模型的泛化能力,所以关注的应该是泛化误差而不是经验误差,一味追求经验误差的降低,就会导致模型“过拟合”现象。但是泛化误差是难以直接观察到的,我们应该如何选择泛化能力比较好的模型呢&#xff1…

蓝桥杯---垒骰子

赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!我们先来规范一下骰子:1的对面是4&…

【Docker篇】Linux安装Docker、docker安装mysql、redis、rabbitmq

1.Linux安装docker 官方帮助文档:Install Docker Engine on CentOS | Docker Docs 1.1安装命令 # 1. 卸载之前的dockersudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate…

RK3568平台 安卓hal3适配usb camera

一.RK安卓hal3 camera框架 Camera hal3 在 android 框架中所处的位置如上图, 对上,主要实现 Framework 一整套 API 接口,响应其 控制命令,返回数据与控制参数结果。 对下, 主要是通 V4l2 框架实现与 kernel 的交互。3a…