vite对比webpack的优势
当我们开始构建越来越大型的应用时,需要处理的 JavaScript 代码量也呈指数级增长。包含数千个模块的大型项目相当普遍。基于 JavaScript 开发的工具就会开始遇到性能瓶颈:通常需要很长时间(甚至是几分钟!)才能启动开发服务器,即使使用模块热替换(HMR),文件修改后的效果也需要几秒钟才能在浏览器中反映出来。如此循环往复,迟钝的反馈会极大地影响开发者的开发效率和幸福感
起因:项目越大,构建工具(webpack)处理js代码越多,【与webpack的构建工作流程有关系】
结果:启动开发服务器需要很长时间
webpack打包编译过程
webpack支持多种模块化,一开始必须统一模块化代码,所以需要将所有的依赖全部读一遍。如
const lodash = require('lodash') // commonjs
import Vue from 'vue' // esm
webpack编译原理:AST抽象语法分析,分析哪些js文件有导入导出,统一进行转换
转换后:
const lodash = webpack_require("lodash")
const Vue = webpack_require('vue')
会编译成
(function(modules){
function webpack_require(){}
// 入口 index.js
// webpack配置文件得来
modules[entry](webpack_require)
})({
"index.js":()=>{
const lodash = webpack_require("lodash")
const Vue = webpack_require('vue')
}
})
vite是基于esm ,侧重不一样,webpack关注兼容性,vite关注浏览器端的开发体验