vite采用了不同的开发模式, 相较于webpack的先打包再启动服务器, vite则是直接启动, 在请求模块时再进行实时编译, 在大型项目中, 这种按需动态编译的模式极大地缩短了时间
vite充分利用了现代浏览器对ES Modules的支持, 将开发环境下的模块文件直接作为浏览器要执行的文件
- ES Modules 通过使用export和import语句在浏览器端导入和导出模块, 主流浏览器(除IE外)均支持ES Modules, 并且可以通过在script标签中设置 type = "modules" 来加载模块
- "五大浏览器 四大内核"
- Chrome:blink内核
- safari:webkit内核
- IE:trident内核
- firefex:gecko内核
- opera:blink内核
webpack是基于Node.js构建的, 而vite是基于esbuild进行预构建依赖, 基于Go语言编写的esbuild, Go语言是纳秒级别的, Node.js是毫秒级别的, 因此, vite在打包速度上相比webpack有10-100倍的提升
- 预购建依赖指的是在项目启动或构建之前, 对项目中所需的依赖项进行预先的处理或预建, 当项目实际运行时, 可以直接使用这些已经预购建好的依赖
关于热更新的处理, 当一个模块或其依赖的模块内容发生改变时, 需要重新编译这些模块, 而在vite中, 只需要重新请求该模块即可
最后, 关于esbuild的相关介绍, 可以查看掘金一篇文章,
标签:面试题,浏览器,Modules,webpack,内核,模块,vite From: https://blog.csdn.net/qq_62035394/article/details/137108863