一、认识vite webpack 是目前整个前端使用最多的构建工具,但是除了webpack 之后也存在其他一些构建工具。比如说rollup ,parcel ,gulp ,vite 等等。vite 的官方定位是下一代前端开发和构建工具 。 如何定义下一代开发和构建工具呢? 我们知道在实际开发中,我们在编写的代码往往是不能被浏览器直接识别的,比如ES6 ,TypeScript ,Vue 文件等。所以此时我们必须通过构建工具来对代码进行转换,编译,类似的工具有webpack ,rollup ,parcel .但是随着项目越来越大,需要处理的javascript 呈指数级增长,模块越来越多。构建工具需要很长时间才能开启服务器,HMR 也需要几秒钟才能在浏览器反应过来。所以出现了vite 。 上面是没有使用任何打包工具,直接使用ESmodule 。但是此时我们如果使用lodash 包,此时es module 默认不会在node modules 中进行查找,所以此时我们应该在引入文件时,使用完整路径。 此时将路径更改为import _ from "../node_modules/lodash-es/lodash.default.js" 错误就解决了。 首先我们会发现使用lodash 时,会加载了上百个模块的js文件,对于浏览器是一个巨大的消耗。 其次,我们的代码中如果存在TypeScript ,less ,vue 等代码时,浏览器并不能直接识别。 事实上,vite就帮助我们解决了上面的所有问题。 二、vite的安装和使用
npm install vite -g
npm install vite -D
通过vite来启动项目
npx vite
此时在浏览器中加载文件的数目大幅减少。 此时加载第三方模块可以直接写。 import _ from "lodash-es" 三、vite对css的支持 直接在主文件中导入css即可,不需要任何其他的配置信息。 四、vite对less文件的支持 直接导入less 文件,并且安装less 。 如果不安装less 的话,则会显示报错。 使用命令为:npm install less -D 五、vite对postcss的支持 只需要安装postcss,并且在postcss.config.js中配置相应的插件即可。 1、安装postcss
npm install postcss -D
并且安装相关的插件
npm install postcss-preset-env -D
新建一个postcss.config.js文件,并且在该文件中配置信息。
module.exports = {
plugins:[
require("postcss-preset-env")
]
}
六、vite对Typescript的支持 vite 完全可以支持Typescript ,不需要任何配置,只需要直接引入ts 即可。 七、vite对vue的支持 如果直接引入vue文件,不进行任何其他操作的话,则会直接报错。 这里的报错信息显示@vitejs/plugin-vue ,执行的操作为npm install @vitejs/plugin-vue -D ,然后再新增一个vite.config.js 中进行配置。在文件中进行配置信息。
import vue from "@vitejs/plugin-vue"
module.exports = {
plugins:[
vue()
]
}
八、vite打包 vite打包执行的代码是:npx vite build ,最终打包后的文件为: 当我们执行npx vite build 进行打包的时候,此时会在node_modules 中创建一个.vite 文件夹,在其中存放一些打包的文件,当下次打包时,就可以直接使用.vite 文件夹中的文件。 九、vite预览 打包后的文件可以不开启live serve ,此时我们可以执行npx vite preview 来进行开启服务进行预览。 十、ESbuild解析 ESbuild的特点: 超快的构建速度,并且不需要缓存。 支持es6和commonjs的模块化 支持es6的tree shaking 支持go,javascript的api 支持typescript,jsx等语法编译 支持sourcemap 支持代码压缩 支持扩展其他插件 ESbuild的构建速度和其他构建工具相比 十一、为什么ESbuild那么快
1、ESbuild采用go语言编写,go语言可以直接转换成机器码,而无需经过字节码。
2、ESbuild可以充分利用多核CPU,尽可能让他们饱和运行(比如说:esbuild可以使得浏览器新增一个进程,进程中增加多个线程)
3、ESbuild的所有的内容都是从零开始编写的,而不是使用第三方,所以从一开始就可以考虑各种性能问题。
十二、vite脚手架工具 在开发中我们不可能一个项目所有的内容都使用vite从头开始搭建。此时我们应该考虑使用vite脚手架工具(@vitejs/create-app)。 vite就是一个构件工具,类似于webpack,rollup. @vitejs/create-app:类似于vue-cli,create-react-app就是一个脚手架工具。 如何使用脚手架工具: npm install @vitejs/create-app -g create-app 项目名称 十三、vite执行流程 如上图所示首先vite会先创建一个本地服务器(connent开启的服务),浏览器向服务器请求资源,服务器查找该资源并返回,在返回之前应该将文件进行相关的转换,然后任然以该文件返回。
如上图所示,第一个是ts代码,在浏览器请求回来的是js代码,因为浏览器不能识别ts代码,所以会经过转化之后返回。
|