项目的构建是我们前端逃不开的话题。
自从我们进入了前端框架时代,构建是我们逃不开的问题,因为前端应用越来越复杂。
最近公司在从webpack过渡到vite.以下是我对他们的认识:

what:

  • webpack是一个JavaScript应用程序的静态模块打包工具,它会对整个应用程序进行依赖关系图构建。
  • vite是构建工具的高阶封装,使用简单,快(开发的时候感觉没有编译过程),便于扩展。而他集成的esbuild(Go 编写) 预构建依赖,比node快 10-100 倍。

和webpack的区别:

  1. 关注层级不同

vite关注的层级更高:vite是 high level api,关注的是如何快速方便的搭建项目,相比webpack,减少了很多配置量。

webpack关注的层级更低:webpack是low level api,因为webpack更关注的是各种功能的实现,重点放在构建上。

  1. vite自己不包含编译能力。

它本身并不参与编译,它的编译能力只是集成了rollup和ESbuild的功能.

  1. 启动项目vite更快,可以说是超级快。

对比webpack在dev-serve的时候,会提交所有编译的文件,而vite在dev-serve的时候利用了浏览器的native ES module功能,在浏览器请求对应的url时才提供文件,实现了根据路由的懒加载,所以启动的时候是超快的。

  1. vite的热更新更快。

对比webpack的热更新,热更新时,把改动过模块的相关依赖模块全部编译一次。而vite热更新时,仅让浏览器重新请求改动过的模块。

现在公司项目从webpack过渡到vite,还在不断摸索爬坑中,虽然目前vite的生态不如webpack丰富,且实用的开发者也不及webpack。
但是不可否认的是,相比于webpack, vite非常适合项目的开发,webpack适合工具的开发


  • vite为构建项目而生
  • webpack为构建工具而生

vite和webpack的区别相关推荐

  1. 轻量迅捷时代,Vite 与Webpack 谁赢谁输

    你知道Vite和Webpack吗?也许有不少"程序猿"对它们十分熟悉. Webpack Webpack是一个JavaScript应用程序的静态模块打包工具,它会对整个应用程序进行依 ...

  2. 项目中选择Vite还是Webpack

    点击下方"青年码农"关注 回复"源码"可获取软件,源码等资料 Vite和Webpack都是现代化的前端构建工具,用于打包.编译.压缩和优化前端代码.它们的主要目 ...

  3. vite和webpack

    Vite构建工具 vite对比webpack 一:打包原理 1:webpack打包过程 识别入口文件--->逐层识别模块依赖---->分析代码--->编译代码--->输出代码- ...

  4. Rollup(1): 安装 Rollup 以及 Rollup 和 Webpack 的区别

    Rollup 介绍 Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,例如 library 或应用程序.Rollup 对代码模块使用新的标准化格式,这些标准都 ...

  5. webpack源码阅读——npm脚本运行webpack与命令行输入webpack的区别

    原文地址:webpack源码阅读--npm脚本执行webpack与命令行输入webpack执行的区别 如有错误,欢迎指正! webpack是目前被大家广为使用的模块打包器.从命令行输入webpack或 ...

  6. Gulp和webpack的区别

    背景:今天了解了大厂前端任职的一些要求:里面写了要熟悉webpack打包工具和Gulp构建工具,作为前端新人,看到这个就想这两种工具有什么区别? 在这里解答一下自已,而且希望可以帮助到有疑问的人. G ...

  7. Vite与webpack优势

    Vite: 快 缓存: 依赖库缓存:库编译结果@/node-modules/.vite http缓存:源码协商缓存.模块强缓存 esbuild: go语言 速度比webpack快10-100倍 nat ...

  8. gulp与webpack的区别

    常有人拿gulp与webpack来比较,知道这两个构建工具功能上有重叠的地方,可单用,也可一起用,但本质的区别就没有那么清晰. gulp gulp强调的是前端开发的工作流程,我们可以通过配置一系列的t ...

  9. vite以及webpack(@vue/cli 5.x) vue3 alias别名配置

    一.vite 之前写了一个vite的项目,配置找了半天,结果如下: import { defineConfig } from 'vite' import vue from '@vitejs/plugi ...

最新文章

  1. 自动驾驶车辆何时实现?近期不会实现的五大原因
  2. RAC 实例 迁移到 单实例 -- 使用导出导入
  3. 错误 未找到引用源_你不理解的EXCEL函数中常见的错误值,都在这里
  4. JavaScript 原型链学习(二)原型的动态性
  5. 单人制作游戏手册之五:好看的素材令人心旷神怡!
  6. android String的replace和replaceAll的使用
  7. 我的世界服务器怎么修改书与笔,我的世界书与笔怎么做 我的世界书与笔怎么用...
  8. PHP随机静态页面生成系统源码雨尘SEO系统v1.3
  9. 求0-999之间的水仙花数。
  10. Leetcode每日一题:101.symmetric-tree(对称二叉树)
  11. POJ 3761 Bubble Sort(乘方取模)
  12. 并发编程之Lock接口
  13. Linux内存映射实现
  14. 基于个性化的电影推荐系统全流程设计
  15. 问题adb remount提示Devices Locked
  16. 宇宙机器人超级计算机,宇宙机器人无线控制器使用指南白金攻略
  17. IBM笔记本使用法语输入法,如何键入法语特殊字符?
  18. 揭秘!苏宁“融合基础设施”型零售实践大解析
  19. 云队友丨中国互联网反垄断简史
  20. datastage7.5.1.A License 及 下载地址 Download

热门文章

  1. CSGO 绑定一键跳投
  2. HTML:桂林山水风景Web界面设计
  3. 微信小程序笔记(一)初次接触小程序开发
  4. 螳螂捕蝉、黄雀在后——从一个成语谈观察家模式
  5. c#对表格中重复数据进行汇总
  6. 两张表格数据匹配删除
  7. VOC2007数据集 VOC2012数据集下载 百度云
  8. 2014广州入户新规则--广州积分入户8月1日起接受申报 详细指引
  9. [USACO18JAN]Lifeguards P 洛谷黑题,单调队列优化DP
  10. 天龙八部玄武岛BOSS