webpack vite的一些小区别

使用webpack 和 vite 时常见的四个阶段,分别为
1.启动
2.编译
3.更新
4.构建

项目中运行时就会启动
启动前就需要对项目进行编译(如:es6转es5)
编译完的模块会被推送到浏览器中
代码变动就会实时进行更新
项目上线就需要构建打包

vite用到了模块级更新,无打包过程,动态加载等优化技术实现高效的快速的反应代码的速度。
比webpack 要快。

差异

1.编译阶段

在启动时,webpack会进行编译打包构建
而vite,会按需编译,就是会对当下你所需要的部分模块进行编译
所以启动阶段也是vite比较快的

2.热更新
vite 基于现代浏览器支持es模块的特性,然后再热更新的时候实现模块级的热更新。
vite再发生变化的时候,通过修改变化的代码去找到对应的模块更新,比较精准并且更局部。

webpack 的热更新是基于文件级别的,就是只能检测以文件为最小单位的的变化,然后对整个页面进行构建编译的可能或者重新编译受影响的模块,然后发送到浏览器进行替换。

3.打包构建
vite在开发环境下不会进行打包构建,而是直接利用浏览器原生模块的导入功能,通过http服务器提供模块的及时响应。

webpack 需要一开始启动的时候就已经打包构建过了。
打包过程复杂,每次代码更改后都需要重新打包一遍所有依赖,过程比较缓慢。

  1. 插件

webpack 插件全
vite 比较少

5.适应环境
webpack 更全面也复杂所以更适合大中型
vite 适合中小型

6.生产环境下
webpack 使用babel打包
vite使用rollup+esbuild打包代码

esbulid比babel快很多

vite缺点

热更新的时候有时候会失败,重新刷新就可解决
有些功能rollup 不支持
不支持ie
webpack 支持ie9以上

webpack 缺点

配置比较繁琐复杂
构建速度很慢
输出文件体积较大
对服务器渲染不友好

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容