前端构建工具vite与webpack详解

news2024/11/28 7:27:12

文章目录

  • 前言
    • 什么是构建工具
      • 先说说企业级项目里都需要具备哪些功能?
        • 这是代码改动后需要做的事情样例
        • 总结
  • 一、构建工具他到底承担了哪些脏活累活?
  • 二、vite相较于webpack的优势
  • 三、 vite会不会取代webpack
  • 四、 你必须要理解的vite脚手架和vite
      • create-vite和vite的关系是什么呢?


前言

请添加图片描述

什么是构建工具

常识:浏览器它只认识html,css,js

先说说企业级项目里都需要具备哪些功能?

  1. typescript: 如果遇到ts文件我们需要使用tsc将typescript代码转换为js代码
  2. React/Vue:安装react-compiler / vue-complier,将我们写的jsx文件或者vue文件转换为render函数
  3. less/sass/postcss/component-style:我们又需要安装less-loader,sass-loader等一系列编译工具
  4. 语法降级: babel—>将es的新语法转换旧版浏览器可以接受的语法
  5. 体积优化: uglifyjs -->将我们的代码进行压缩变成体积更小,性能更高的文件

没有构建工具之前,我们只要稍微改一点点代码,就会非常麻烦,以上插件或者模块都要重新去运行一次

这是代码改动后需要做的事情样例

App.tsx —> tsc —> App.jsx —> React-complier —> js文件

总结

构建工具能够帮你把tsc,react-compiler,less,babel,uglifyjs全部集成到一起,我们只需要关心我们写的代码就好了。我们写的代码只要变化 —>构建工具帮我们自动去tsc,react-compiler,less,babel,uglifyjs全部挨个走一遍 —>js文件。


一、构建工具他到底承担了哪些脏活累活?

  1. 模块化开发支持:支持直接从node_modules里引入代码 + 多种模块化支持。
  2. 处理代码兼容性: 比如babel语法降级,less,ts 语法转换(不是构建工具做的,构建工具将这些语法对应的处理工具集成进来自动化处理
  3. 提高项目性能: 压缩文件,代码分割
  4. 优化开发体验:构建工具会帮你自动监听文件的变化,当文件变化以后自动帮你调用对应的集成工具进行重新打包,然后再浏览器重新运行(整个过程叫做热更新,hot replacement)。
  5. 开发服务器:跨域的问题,用react-cli create-react-element vue-cli解决跨域的问题。

构建工具他让我们可以不用每次都关心我们的代码在浏览器如何运行

构建工具他让我们可以不用每次都关心我们的代码在浏览器如何运行,我们只需要首次给构建工具提供一个配置文件(这个配置文件也不是必须的,如果你不给他 他会有默认的帮你去处理),有了这个集成的配置文件以后,我们就可以在下次需要更新的时侯调用一次对应的命令就好了,如果我们再结合热更新,我们就更加不需要管任何东西,这就是构建工具去做的东西,他让我们不用关心生产的代码也不用关心代码如何在浏览器运行,只需要关心我们的开发怎么写的爽怎么写就好了


二、vite相较于webpack的优势

请添加图片描述

官方文档: https://cn.vitejs.dev/guide/why.html#the-problems

当我们开始构建越来越大型的应用时,需要处理的 JavaScript代码量也呈指数级增长。包含数千个模块的大型项目相当普遍。我们开始遇到性能瓶颈 一 使用 Javascript 开发的工具通常需要很长时间( 甚至是几分钟!)才能启动开发服务器即使使用HMR(热更新),文件修改后的效果也需要几秒钟才能在浏览器中反映出来。如此循环往复,迟钝的反馈会极大地影响开发者的开发效率和幸福感。

  • 起因:我们的项目越大 ---->构建工具( webpack )所要处理的Js代码就越多,这跟webpack的构建过程(工作流程)有关系。

  • 造成的结果:构逸工具需要很长时间才能启动开发服务器(启动开发服务器 -->把项目跑起来)

请添加图片描述

因为webpack支持多种模块化,他一开始必须要统一模块化代码,所以意味着他需要将所有的依赖全部读一遍 。


三、 vite会不会取代webpack

vite是基于es modules的,二者侧重点不一样

  • webpack更多的是关注兼容性,支持多种模块化
  • vite关注浏览器端的开发体验,只支持ES模块化

四、 你必须要理解的vite脚手架和vite

请添加图片描述

vite官网文档教程: https://vitejs.dev/guide/#scaffolding-your-first-vite-project

//比如我们敲了以下命令
yarn create vite

它帮我们全局安装:create-vite (vite的脚手架),直接运行这个create-vite bin目录的下的一个执行配置文件。
我们之前接触过vue-cli,很多人可能就会存在误区:认为官网中使用对应yarn create构建项目的过程也是vite在做的事情

create-vite和vite的关系是什么呢?

create-vite内置了vite 就像vue-cli 内置webpack

vite --> vue团队的 create-vite —> vue团队vue团队希望减少我们的学习成本。

比如: 买房子!
毛坯房(我们的工程) 买沙发,做装修,修各个厕所,埋线,
精装修的房: 搭建好了我们自己搭建一个项目:下载vite,vue,post-css,less,babel等

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

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

相关文章

外贸跨境商城源码:快速开发,系统源码,APP+PC+H5

随着全球电子商务的快速发展,外贸跨境商城已成为商业领域的一股不可忽视的力量。外贸跨境商城源码,即可以快速开发出高效、稳定、安全的外贸跨境商城的系统源码,以及APP、PC端和H5端的用户界面设计,是当前市场上的迫切需求。 一、…

多个电商平台搜索接口是否能聚合使用?

作为一名技术爱好者,我们总会遇到各种各样的技术问题,需要寻找合适的技术解决方案。而在互联网时代,我们可以快速通过搜索引擎获取丰富的技术资源和解决方案。然而,在不同的技术分享中,我们常常会遇到质量参差不齐的文…

个人所得税思维导图参考二 —— 筑梦之路

接上篇: 个人所得税思维导图参考 —— 筑梦之路-CSDN博客 这里继续整理下剩下的内容。 11. 个人所得税税率表

2023年下半年信息系统项目管理师下午真题及答案解析(第三批)

试题一(6分) 项目有A、B、C、D、E、F 6个活动,各活动的关系如下表: 2023年下半年信息系统项目管理师下午真题答案及解析 试题一(6分)

harmonyOS开发

在Cocos Creator中,场景是一个独立的文件资源,可以像打开PSD文件一样在编辑器中双击打开; 场景文件是数据驱动工作流的核心,场景中包括图像资源、动画、特效以及驱动游戏逻辑和表现的脚本; Cocos Creator是一个数据驱…

2023年合成数据最大的利用价值

开发成功的 AI 和 ML 模型需要访问大量高质量数据。但是,收集此类数据具有挑战性,因为: AI/ML 模型可以解决的许多业务问题都需要访问敏感的客户数据,例如个人身份信息 (PII) 或个人健康信息 (…

怎么将竖排文字图片转为可编辑的文本?

我们知道,印刷文字的排版大多是横向从左到右排版的,但有些书籍的文字却是从右到左竖向排版的,而一般的OCR软件并不支持这种排版,会将这种排版的文字图片识别成乱码的,那怎么办呢?下面就是很好的解决方案&am…

2023最新版本 FreeRTOS教程 -9-互斥量(基本使用和解决优先级反转)

互斥量是一种特殊的二进制信号量 使用场景1 (互斥访问) 外设的独立访问 如打印 协议操作 使用场景2 解决优先级反转 外设的独立访问 如打印 协议操作 使用场景2 解决优先级反转 我们以较为复杂的场景2来分析 -1- 创建三个任务 优先级从低到高&…

重新安装电脑系统Win10步骤教程

我们的电脑系统出现了中病毒、崩溃等问题,就会影响到自己的正常使用。这时候选择给电脑重新安装上系统,就能快速解决这些系统问题了。如果有用户不清楚详细的重装Win10系统步骤,就可以参考下面小编带来的重新安装电脑系统Win10的详细步骤介绍…

MySQL -- 视图

MySQL – 视图 文章目录 MySQL -- 视图一、基本使用二、视图规则和限制 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。 一、基本使用…

负载平衡介绍

负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展 网络设备 和 服务器 的带宽、增加 吞吐量 、加强网络数据处理能力、提高网络的灵活性和可用性。 1.1. 四层负载均衡 层负载均衡 vs 七层负载均衡 1.1.1. 四层负载均衡( 目标地址和…

UML/SysML建模工具更新(2023.10)(1)StarUML、Software Ideas Modeler

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 工具最新版本:Software Ideas Modeler 14.02 更新时间:2023年10月9日 工具简介 轻量级建模工具,支持UML、BPMN、SysML。 平台:Windo…

前端学习基础知识

环境搭建 windows环境 nodejs版本管理工具NVM nvm全英文也叫node.js version management,是一个nodejs的版本管理工具。nvm和n都是node.js版本管理工具,为了解决node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本的node.js。 安装学习访…

vue-cli创建自定义preset预设项目

vue-cli创建自定义preset预设项目 背景自定义预设创建默认预设创建预设项目preset.jsonprompts.jstemplate预设模板generator.js 本地预设创建项目 背景 一个 Vue CLI preset 是一个包含创建新项目所需预定义选项和插件的 JSON 对象,让用户无需在命令提示中选择它们…

【LeetCode】每日一题 2023_11_9 逃离火灾(bfs 练习)

文章目录 刷题前唠嗑题目:最长平衡子字符串题目描述代码与解题思路偷看大佬题解 结语 刷题前唠嗑 LeetCode? 启动!!! 嗯?什么?今天是 hard?陷入沉思。。。先看看题吧 题目:最长平…

【面经】如何查看服务器内存和磁盘空间占用

查看服务器内存占用 free -g查看服务器磁盘空间占用 df -h

基于React开发的chatgpt网页版(仿chatgpt)

在浏览github的时候发现了一个好玩的项目本项目,是github大神Yidadaa开发的chatgpt网页版,该开源项目是跨平台的,Web / PWA / Linux / Win / MacOS都可以访问。非常有意思,本人就部署了一套,喜欢的同学可以体验一番。 …

一篇文章揭秘JetBrains的 AI 图形发展历程

JetBrains IDE正式版下载 JetBrains 不断完善用作网站元素和发布图形的图稿创建方式,使命是将平面设计师从日常任务中解放出来,让他们能够专注于自己的核心能力 – 创造力,JetBrains 用于生成图稿的内部工具的历史大约开始于十年前。起初主要…

Web APIs——BOM和延迟函数setTimeout

1、window对象 1.1 BOM(浏览器对象模型) BOM(Browser Object Model)是浏览器对象模型 window对象是一个全局对象,也可以说是JavaScript中的顶级对象像document、alert()、console.log()这些都是window的属性&#xf…

用POST请求在Linux之间传输文件(Python在Linux间传输文件)

背景 实际需求: 已通过iperf和dd命令测试过两台不同区域之间的Linux服务器带宽,均为1000Mb网络。但发送post请求传输文件至对象存储时,总是卡在14Mb/s。除了排查区域之间的防火墙,也应该尝试检查Linux(KylinV10&…