Vite2 — 初体验

简介: Vite2 — 初体验

image.png


尤大在知乎上说过,很多人会抛弃 webpack 开始使用 vite ,一起来体验下吧。

一、vite 介绍

Vite 是一种开发构建工具,开发过程中它利用浏览器的 native ES Module 特性按需导入源码,预打包依赖。Vite 需要 Node.js版本 >= 12.0.0

vite 两大特点:

  • 启动快 :vite 启动项目的速度是非常快的,这个速度和项目的大小是没有关系的,因为它不会像 webpack 一样会对整个项目进行打包编译等操作之后在进行启动
  • 更新快

二、创建 vite 项目

npm init @vitejs/app 

可以看到 vite 已经内置支持了一些相关的框架:vue 、react 、svelte,在这笔者就选择 vue-ts 的选项

image.png

大概的项目结构

image.png

三、vite 带来的变化

使用 vite 创建项目之后,其内容是有所变化的,首先 index.html 文件中引入 main.ts 的方式变成了 <script type="module" src="/src/main.ts"></script>,这意味着浏览器在引入这个 main.ts 文件时就会使用 ES 的方式,并且会对 main.ts 中所依赖的文件进行按需加载,就不需要像 webpack 一样需要进行打包了:

image.png

3.1 将资源引入为 URL

服务时引入一个静态资源会返回解析后的公共路径,例如:

<img alt="Vue logo" src="./assets/logo.png" /> 解析为  /src/assets/logo.png

甚至我们可以通过使用变量的方式

image.png

下面是通过浏览器显示给我们的结果

image.png

3.2 样式相关的使用

  • 除了最常用的 全局样式局部样式 之外,我们也可以使用 css module 的方式:

image.png

这样模块化的 css 的优点是,它会对我们的 class 名称做一个 hash 处理,这也使得我们的 class 名称在全局是唯一的,不会破坏 css 中 class 名称的深度,它不像 scope css 那样会被解析成对应的属性选择器,改变了 class 的深度。

image.png

也可以将模块化的 css 样式抽离出去,在引入时需要我们通过 import xx from 'xx.css' 的方式为当前的 css module 具名化,就不需要像上图一样使用 $style.xx 的形式进行访问

image.png

  • 使用 sass 、less 等当项目变大时,我们需要使用更多的样式时,我们需要先安装对应的 预处理器,以 sass 为例:在当前项目下安装 npm i sass -D , 然后就可以在项目中进行使用了,因为 vite 主张开箱即用,它的功能都是基于插件来实现的,安装了对应的开发依赖以后,我们不需要像 webpack 那样在安装对应的 loader 然后又得去做 loader 的相关配置。

3.3 设置路径别名

image.png

3.4 配置代理

image.png

3.5 mock 数据

安装依赖: npm i mockjs -S & npm i vite-plugin-mock -D , 并添加配置

image.png

在项目根路径下 新增 mock 文件夹,注意这里默认支持了 .ts 文件类型

image.png

四、vite 插件

vite 插件可以扩展 vite 的能力,比如解析用户自定义的文件输入,在打包代码前转译代码,或者查找第三方模块。

image.png

image.png

vite 插件的形式

即便 vite 已经拥有了自己的 系统插件【橘色部分】,也有了一些 用户插件【绿色部分】,但是针对不同的场景,vite 不能全部都替实现,或者需要我们去改写一些其他已存在的插件,因此需要我们实现对应的插件。

插件钩子

开发时,Vite创建一个插件容器按照顺序调用各个钩子。

plugins: [vue({config:xxx,configResolved:xxx,...}), viteMockServe({})],

  • config:修改Vite配置
  • configResolved:Vite配置确认
  • configureServer:用于配置dev server
  • transformIndexHtml:用于转换宿主页
  • resolveId:创建自定义确认函数,常用语定位第三方依赖
  • load:创建自定义加载函数,可用于返回自定义的内容
  • transform:可用于转换已加载的模块内容
  • handleHotUpdate:自定义HMR更新时调用自定义 vite 插件,例如:

image.png

image.png


目录
相关文章
|
资源调度
Vue3+vite个人博客网站从0-1(项目环境搭建)
Vue3+vite个人博客网站从0-1(项目环境搭建)
615 0
Vue3+vite个人博客网站从0-1(项目环境搭建)
|
8月前
|
资源调度 JavaScript 前端开发
nuxt2-storybook-vite:环境搭建、基础使用 / nuxt项目组件库
nuxt2-storybook-vite:环境搭建、基础使用 / nuxt项目组件库
189 0
|
12月前
|
JavaScript 前端开发
前端学习笔记202303学习笔记第五天-基于vite创建工程化vue项目
前端学习笔记202303学习笔记第五天-基于vite创建工程化vue项目
78 0
|
资源调度 JavaScript
vite 教程
首先先介绍一下vite,vite这个名字起源于法语就是很快的意思。应为他是冷服务不打包 用es6 import 来引入对应 的js。其次就是使用rollup 去打包。开发中有热更新等。
257 0
vite 教程
|
JavaScript 前端开发 Shell
五分钟掌握用Vue脚手架搭建一个完整项目!
五分钟掌握用Vue脚手架搭建一个完整项目!
1011 0
五分钟掌握用Vue脚手架搭建一个完整项目!
|
资源调度 前端开发 JavaScript
Vite教程 安装
Vite教程 安装
994 0
Vite教程 安装
|
JavaScript 前端开发
vite 开发与学习
vite 开发与学习
|
JavaScript 测试技术
搭建Vue3组件库::第一章 Vite搭建开发环境
由于Vue3和Vite锲合度比较好,我们第一步使用Vite+pnpm搭建初始开发环境。
511 0
|
Web App开发 缓存 开发框架
Vue05之ElementUI入门+nodejs环境搭建+运行nodejs项目
Vue05之ElementUI入门+nodejs环境搭建+运行nodejs项目
Vue05之ElementUI入门+nodejs环境搭建+运行nodejs项目
|
JSON 资源调度 JavaScript
Vue3源码阅读(1):使用 pnpm 搭建 monorepo 开发环境
本文介绍了如何使用新一代的包管理工具 Pnpm 快速创建一个 Monorepo 环境,并使用 esbuil 实现了一个打包脚本。
1456 2