不同的开发模式:
开发环境中,webpack是所有的模块先打包再启动开发服务器的,这会增加构建时间和启动时间
vite是直接启动开发服务器的,在请求模块时再按需进行实时编译
充分利用现代浏览器的 ES Modules支持:
浏览器本身支持ES Modules,会主动发起请求去获取所需文件。
vite利用这点将开发环境下的模块文件直接作为浏览器要执行的文件
webpack是先打包,再交给浏览器执行
扩展:什么是ES Modules
通过使用export和import语句,ES Modules允许在浏览器端导入和导出模块
主流浏览器均支持ES Modules,可以通过在script标签中设置type="module"来加载模块。默认情况下,模块会延迟加载,执行时机在文档解析之后,触发DOMContentLoaded事件之前。
使用更高效的底层语言:
webpack是基于node.js构建的,node.js是毫秒级别的
vite是基于esbuild进行预构建依赖,esbuild是采用go语言编写的,go是纳秒级别的
扩展:什么是预构建依赖
是在项目启动或构建之间,对项目中所需的依赖项进行预先的处理或构建。
好处:在项目运行时,可以直接使用已经预构建好的依赖,不需要再进行实时的编译或构建
优化热更新:
webpack中,当一个模块或其依赖的模块内容改变时,会重新编译这些模块
vite中当一个木块内容改变时,只会让浏览器重新请求该模块即可