vite 开发模式和生产模式的区别
开发模式
- 通过express/koa/http-server启动一个本地服务器,通过中间件拦截请求并映射为本地路径
- 开发模式下,vite会监听文件变化,自动编译代码,通过socket更新相应的资源
- 中间件拦截请求,判断资源类型,css/scss/less等走对应的loader编译成css,打包为ES Module,动态插入style标签。jsx/ts/tsx等走esbuild编译成js。json文件打包为ES Module格式。png/svg等静态资源打包为ES Module格式。
- Content-type设置为js
- 请求返回
生产模式
第三方依赖
通过esbuild打包第三方依赖,把依赖的代码转换为ES Module格式,并打包到bundle.js中,然后对bundle.js进行压缩、Tree Shaking、代码分割等优化.
项目代码
项目代码大部分都不是存js代码,项目一般都是需要根据路由按需加载,不需要一次性加载,因此采用rollup打包,做代码分割。