12.vite,webpack构建工具

news2025/6/9 15:04:42

😺😺 😺1.vite 介绍和对比
🏷️ Vite 是什么?

👉 Vite 是一个 前端构建工具 + 开发服务器,
可以帮你:
• 开发阶段:秒开项目,改代码能瞬间热更新(体验超爽);
• 生产阶段(build 阶段):快速打包优化代码,生成可以上线的文件。

Vite 本身是用 现代浏览器原生支持的 ES Module(ESM) 技术做的,
比以前 Webpack 这种“老一代打包工具”快很多、体验更丝滑 🚀。

🗂️ Vite 主要功能:

✅ 超快冷启动(项目刚跑起来很快)
✅ 热模块替换 (HMR) 很快,改完代码不用全刷新
✅ 原生支持 ES Module
✅ 开箱即用支持 Vue / React / Svelte / Preact 等框架
✅ 生产构建性能很高
✅ 配置简单,文档清晰

🏗️ Vite 适用于哪些项目?

👉 它原本是 Vue 生态里尤雨溪(Vue 作者)发起的项目,
一开始 Vite 是给 Vue 3 用的,体验非常棒。

但是!后来 Vite 变得很通用,现在:

✅ Vue 项目 → 大量用 Vite
✅ React 项目 → 也大量用 Vite(配 vite-plugin-react)
✅ Svelte、Preact、Lit 等 → 都能用 Vite
✅ 甚至 纯 HTML + JS + CSS 项目 → 也能用 Vite

👉 所以 Vite 不是 Vue 专属的,现在是一个通用的现代前端构建工具,越来越多人在用它代替 Webpack 或 Parcel。

🤔 Vue 和 React 是不是都用 Vite?

✔️ Vue 3 推荐官方用 Vite,几乎标配。
✔️ Vue 2 也可以用 Vite,不过需要配 vite-plugin-vue2。
✔️ React 现在很多人新项目都选 Vite,体验更好,打包更快;老项目以前常用 Webpack,现在也有很多迁移到 Vite。

所以结论: Vue 和 React 项目都可以用 Vite,而且现在越来越多项目都在用。

😺😺😺 2.Vite 的“构建”到底是什么意思?
简单说,构建(英文叫 build),就是把你写的前端代码,经过一系列处理,变成浏览器能高效运行的最终文件。

你平时写代码的时候,写的通常是这些东西:
• Vue 组件(.vue 文件)
• 使用了 ES6+ 或 TypeScript 的 JavaScript
• SCSS、LESS 这种高级样式语言
• 用了很多 npm 包(第三方依赖)

这些东西,浏览器本身是直接不认识的,不能直接运行。所以需要一个“加工”过程,把它们转成浏览器能理解、能快速加载的文件。

经过构建后,生成的是:
• 纯 HTML
• 纯 JavaScript
• 纯 CSS
• 这些文件通常是压缩过、优化过的,体积小、性能好。

构建的流程通常包含以下步骤:
1. 转译(transpile)
比如把 TypeScript 转成 JavaScript,把 Vue 文件拆解成 JavaScript、HTML、CSS。
2. 打包(bundle)
把很多分散的模块、文件整合成一个或几个 JavaScript 文件,减少浏览器请求的次数,加载更快。
3. 压缩(minify)
对代码进行压缩,去掉注释、空格,把变量名变短,减少文件体积。
4. 其他优化
包括图片压缩、按需加载、代码分割(把大文件拆成更小的按需加载的模块)等等。

为什么需要构建?

在开发阶段,Vite 提供一个开发服务器(dev server),你改代码后,页面可以实时热更新,方便调试。这时候代码没有压缩,结构比较清晰。

而上线阶段需要通过 build 过程,生成一套优化后的最终文件,部署到服务器,供用户访问。这些文件是高度优化的,体积更小,性能更好。

总结一句话:
构建,就是把你写的“开发用的源码”,变成用户实际访问时看到和使用的“线上正式版本”。

开发阶段写的是源码,构建阶段输出的是高效优化过的文件。

举个直观例子:
你写的时候可能有上百个 Vue 文件、TypeScript 文件和图片。
构建后,最终可能只生成一两个 JavaScript 文件,一个 CSS 文件,压缩优化过的图片,整体体积很小,加载很快,用户体验更好。

😺😺😺3.Next.js默认用的是webpack

Next.js 是一个基于 React 的框架,属于“全栈前端框架”。
👉 它默认帮你封装好了:
• 路由系统
• 服务器端渲染(SSR)
• 静态生成(SSG)
• API 路由
• 图片优化、SEO 优化
• 构建工具配置(默认是 Webpack,后来开始支持 Vite)

Next.js + 构建工具?
• Next.js 自己带了一套构建系统,你平时不需要手动写 vite.config.js 或 webpack.config.js。
• Next 15.x 目前默认还是用 Webpack 5,除非你特意开启了 Vite 支持(目前还是实验性 feature)。
• 也就是说你跑 npm run dev 的时候,Next.js 内部自动帮你起了一个 Webpack-based dev server,你看不到 vite.config.js,但能跑,是因为 Next 帮你封装好了。

用的是 Next.js → 它内置了构建工具(默认 Webpack)
你不需要自己配 Vite,Next 自己会处理构建和打包

😺😺😺现在 React 项目要不要用 Vite?

纯前端 React SPA 推荐 Vite(体验更好,打包快)
想做 SSR / SEO / 多页面 + 全栈 用 Next.js功能全面。

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

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

相关文章

Vue入门到实战之第一篇【超基础】

Vue入门到实战之第一篇 学习路线1. Vue 概念1.1 Vue 是什么 2. 创建Vue实例,初始化渲染3. 插值表达式 {{ }}4. Vue响应式特性5. 开发者工具 学习路线 1. Vue 概念 1.1 Vue 是什么 概念: Vue是一个用于 构建用户界面1 的 渐进式2 框架3 1:基…

实时数据分析的技术架构:Lambda vs Kappa架构选择

文章目录 引言:实时数据分析架构的重要性Lambda架构深度解析Kappa架构技术特性架构对比分析维度性能与可扩展性评估技术栈选型指南实际应用场景分析成本效益对比模型混合架构与演进策略企业级决策框架最佳实践与案例研究技术趋势与未来展望引言:实时数据分析架构的重要性 在…

springboot2.x升级springboot3.x

springboot2.x升级springboot3.x 背景升级jdk版本为17以上springboot版本修改javax包更新mybatis-plus升级swagger升级springdocspringdoc配置 背景 当前项目是springboot2.5.9版本的springbootmybatis-plus项目,需要升级到springboot3.5.0项目。 升级jdk版本为17…

Python训练打卡Day43

复习日 1.卷积神经网络的基本概念 2.kaggle找到一个图像数据集,用cnn网络进行训练并且用grad-cam做可视化 进阶:并拆分成多个文件 tips:注册kaggle的注意事项 安装插件:Header Editor 然后打开扩展选项: 输入网址:ht…

227.2018年蓝桥杯国赛 - 交换次数(中等)- 贪心

227. 交换次数(贪心) 1. 2018年蓝桥杯国赛 - 交换次数(中等) 标签:2018 暴力 国赛 1.1 题目描述 IT 产业人才需求节节攀升。业内巨头百度、阿里巴巴、腾讯(简称 BAT )在某海滩进行招聘活动。…

STM32入门学习之系统时钟配置

1. 时钟就是单片机的心脏。单片机根据时钟频率来控制每个部件的工作,时钟是单片机的脉搏,决定了每条命令运行的速率,没有时钟单片机将停止工作。 如何理解“时钟决定了单片机每条命令运行的速率”? 首先需要去理解单片机中的时…

【ArcGIS Pro微课1000例】0072:如何自动保存编辑内容及保存工程?

文章目录 一、自动保存编辑内容二、自动保存工程在使用ArcGIS或者ArcGIS Pro时,经常会遇到以下报错,无论点击【发送报告】,还是【不发送】,软件都会强制退出,这时如果对所操作没有保存,就会前功尽弃。 此时,自动保存工作就显得尤为重要,接下来讲解两种常见的自动保存方…

AU音频软件|Audition 2025网盘下载与安装教程指南

说起AU,有些小伙伴可能第一印象是化学元素金(Aurum)。实际上,本文要介绍的AU,全称是Adobe Audition,是一款专业音频编辑和混音软件‌,广泛应用于音乐制作、广播、电影及视频声音设计等领域。 目…

网络编程(TCP编程)

思维导图 1.基础流程 流程图中是TCP连接的基础步骤&#xff0c;其他操作都是在此基础上进行添加修改。 2.函数接口 2.1 创建套接字&#xff08;socket&#xff09; int socket(int domain, int type, int protocol); 头文件&#xff1a;#include <sys/types.h> …

热成像实例分割电力设备数据集(3类,838张)

在现代电力系统的运维管理中&#xff0c;红外热成像已经成为检测设备隐患、预防故障的重要手段。相比传统可见光图像&#xff0c;红外图像可揭示设备温度分布&#xff0c;从而更直观地反映过热、老化等问题。而在AI赋能下&#xff0c;通过实例分割技术对热成像中的电力设备进行…

用电脑通过USB总线连接控制keysight示波器

通过USB总线控制示波器的优势 在上篇文章我介绍了如何通过网线远程连接keysight示波器&#xff0c;如果连接的距离不是很远&#xff0c;也可以通过USB线将示波器与电脑连接起来&#xff0c;实现对示波器的控制和截图。 在KEYSIGHT示波器DSOX1204A的后端&#xff0c;除了有网口…

uni-app学习笔记二十四--showLoading和showModal的用法

showLoading(OBJECT) 显示 loading 提示框, 需主动调用 uni.hideLoading 才能关闭提示框。 OBJECT参数说明 参数类型必填说明平台差异说明titleString是提示的文字内容&#xff0c;显示在loading的下方maskBoolean否是否显示透明蒙层&#xff0c;防止触摸穿透&#xff0c;默…

【Linux】centos软件安装

目录 Linux下安装软件的办法什么是yum使用yum试着安装软件查看yum源配置额外的第三方库 Linux下安装软件的办法 做为一个操作系统&#xff0c;与win和mac一样&#xff0c;安装软件无可厚非。那Linux下安装软件有哪些办法呢&#xff1f;第一种是直接下载源代码本地编译安装&…

基于Vue3.0的在线工具网站

文章目录 1、初始化项目1.1 创建项目1.2 安装vue路由1.3 安装UI库2、首页搭建2.0 页面布局2.1 页头2.2 侧边栏2.3 内容显示区域3、字符串加密解密功能实现3.1 页面构建3.2 实现加密/解密4、Json工具4.1 Json格式化4.1.1 搭建页面4.1.2 实现Json格式化4.2 Json转XML4.1.1 搭建页…

STM32H562----------串口通信(UART)

1、串口介绍 1.1、 数据通信概念 在单片机中我们常用的通信方式有 USART、IIC、SPI、CAN、USB 等; 1、数据通信方式 根据数据通信方式可分为串行通信和并行通信两种,如下图: 串行通信基本特征是数据逐位顺序依次传输,优点:传输线少成本低,抗干扰能力强可用于远距离传…

webpack其余配置

webpack搭建本地服务器 首先是要安装一个webpack-dev-server npm install webpack-dev-server -D 安装后在package.json中添加&#xff1a; {"name": "babel_core_demo","version": "1.0.0","main": "index.js"…

【CUDA 】第5章 共享内存和常量内存——5.3减少全局内存访问(2)

CUDA C编程笔记 第五章 共享内存和常量内存5.3 减少全局内存访问5.3.2 使用展开的并行规约思路reduceSmemUnroll4&#xff08;共享内存&#xff09;具体代码&#xff1a;运行结果意外发现书上全局加载事务和全局存储事务和ncu中这两个值相同 5.3.3 动态共享内存的并行规约reduc…

Python 训练营打卡 Day 46

通道注意力 一、什么是注意力 注意力机制是一种让模型学会「选择性关注重要信息」的特征提取器&#xff0c;就像人类视觉会自动忽略背景&#xff0c;聚焦于图片中的主体&#xff08;如猫、汽车&#xff09;。 transformer中的叫做自注意力机制&#xff0c;他是一种自己学习自…

Rust学习(1)

声明&#xff1a;学习来源于 《Rust 圣经》 变量的绑定和解构 变量绑定 let a "hello world":这个过程称之为变量绑定。绑定就是把这个对象绑定给一个变量&#xff0c;让这个变量成为它的主人。 变量可变性 Rust 变量默认情况下不可变&#xff0c;可以通过 mut …

鸿蒙仓颉语言开发实战教程:商城应用个人中心页面

又到了高考的日子&#xff0c;幽蓝君在这里祝各位考生朋友冷静答题&#xff0c;超常发挥。 今天要分享的内容是仓颉语言商城应用的个人中心页面&#xff0c;先看效果图&#xff1a; 下面介绍下这个页面的实现过程。 我们可以先分析下整个页面的布局结构。可以看出它是纵向的布…