webpack + Vite

Webpack 是一个前端模块打包工具(Module Bundler),它的核心作用是把多个分散的代码文件打包成一个(或多个)浏览器能直接运行的文件

你的项目代码:

├── src/

│ ├── main.js ← 入口文件

│ ├── utils/

│ │ ├── date.js ← 工具函数

│ │ └── format.js

│ ├── components/

│ │ ├── Button.vue ← Vue 组件

│ │ └── Table.vue

│ └── assets/

│ ├── logo.png ← 图片

│ └── style.scss ← SCSS 样式

浏览器报错 ❌:

  • 不支持 import/export 语法
  • 不支持 .vue 文件
  • 不支持 .scss 文件
  • 大量 HTTP 请求(性能差)

使用 Webpack 打包后:

Webpack 处理后:

├── dist/

│ ├── main.js ← 所有 JS 合并成一个文件

│ ├── main.css ← 所有样式提取合并

│ └── assets/

│ └── logo.png ← 图片处理后的版本

浏览器正常 ✅

Webpack 的核心功能

功能 说明

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

模块打包 把多个 JS/CSS/图片等文件打包成少量文件

Loader 转换非 JS 文件(如 vue-loader 处理 .vue,sass-loader 处理 .scss)

Plugin 执行各种任务(压缩、提取 CSS、生成 HTML 等)

代码分割 按需加载(懒加载),减少首屏加载时间

开发服务器 提供热更新(HMR),修改代码自动刷新浏览器

1. 什么是 Vite?

Vite 是由 Evan You(Vue.js 的作者)开发的一个构建工具,目标是为现代前端开发提供更好的开发体验和更快的构建速度。Vite 采用了一些创新的思路,尤其是在 开发模式下,通过利用浏览器的原生模块支持来显著提升开发速度。

开发体验:Vite 使用原生 ES 模块,在开发时不需要打包,只需要启动一个开发服务器并通过 HTTP 请求直接加载模块。这样可以避免 Webpack 在开发时的重打包开销。

构建速度:Vite 使用了现代浏览器的特性(如 ES 模块和动态导入)来避免传统构建工具中的繁重工作,尤其在冷启动和热更新(HMR)方面表现得尤为突出。

构建流程:Vite 在生产环境下会使用 Rollup 来进行打包,Rollup 是一个优化过的 JavaScript 打包工具,专注于高效的树摇(tree-shaking)和按需加载。

特性 Vite Webpack
启动速度 非常快,采用原生 ES 模块,不需要打包过程,直接用浏览器加载模块 较慢,因为需要解析和打包整个项目,启动时会较慢
热更新 (HMR) 非常快速,只有受影响的模块会重新加载 较慢,尤其是在大型项目中,每次 HMR 都可能触发大量的重新构建
打包工具 生产环境下使用 Rollup 打包 内置了自己强大的打包引擎
开发体验 由于无须每次都打包,开发时响应非常迅速,体验更好 由于需要在开发时进行打包,开发体验相对较慢
配置复杂度 配置简单,开箱即用,默认配置即能满足大多数项目需求 配置灵活但复杂,需要手动设置很多细节
支持的功能 开箱即用,支持 Vue、React 等主流框架,支持 TypeScript、JSX 等 功能非常强大,支持自定义插件、loader、代码分割等
生态系统 生态相对较新,插件支持逐步完善 生态成熟,插件和社区支持非常强大
性能 对开发模式有显著性能优化,尤其适用于大规模项目 生产模式性能较强,但开发模式下性能较差
树摇(Tree Shaking) 内置 Rollup 支持,高效的树摇技术 内置树摇支持,但配置复杂,性能上可能不如 Rollup
相关推荐
ZC跨境爬虫5 小时前
前端实战复盘:从零完成Apple中国大陆官网UI第一阶段全量静态复刻
前端·css·ui·html
苏一恒5 小时前
MP4 在 <video> 里,必须全量下载才能起播吗?—— moov、Range 与被误解的 FastStart
前端
Java小卷5 小时前
低代码并没有过时!可拖拽表单设计器布局思路
前端·低代码
idcu5 小时前
深入 Lyt.js 响应式系统:Proxy + Signal 双模式
前端
idcu5 小时前
Vapor Mode 揭秘:无虚拟 DOM 的极致性能
前端
idcu5 小时前
从 Vue 3 到 Lyt.js:无痛迁移指南
前端
尘世壹俗人5 小时前
如何检查服务器上消耗资源的程序是那个
服务器·前端·chrome
LIO5 小时前
Vue Router 进阶:深入用法与最佳实践
前端·vue-router
Hilaku6 小时前
做了 6 年前端,技术不差却拿不到 Offer?
前端·javascript·程序员
古茗前端团队6 小时前
钉钉小程序蓝牙打印探索与实践
前端·蓝牙