webpack | vite | |
打包原理 | 把代码打包为立即执行函数,这个转换封装逻辑,代码量越大,打包时间越长 | 把模块区分为 依赖和源码,用 go写的 esbuild 去预构建 这些依赖,源码部分利用浏览器原生ESM的方式去提供出去。(浏览器请求源码时,vite进行 按需部分编译 ) |
热更新 | 先编译打包,然后更新模块 | 不需要编译打包 |
生产环境 | 仍然需要打包,因为模块嵌套导入会导致网络开销。 打包之后可以进行 tree-shaking / 懒加载 / chunk 分割 rollup 打包,esbuild还在开发中 |
vite是这样处理文件的