Vite-对CSS的支持
Vite处理CSS
处理简单css
当我们写出以下代码并通过vite启动:
index.html
1 | <div class="name">秋华软创</div> |
main.js
1 | import "./index.css" |
index.css
1 | .name{ |
vite会做以下内容:
读取到main.js中引入了index.css
通过fs读取index.css中的内容
创建style标签包裹css文件中的内容
将style标签插入html的head中
将css中的文件替换为js脚本(方便热更新或css模块化),同时设置Content-Type为js(和读取vue文件同理),让浏览器以脚本方式执行css后缀的文件
CSS模块化
1、当有多个css文件定义了相同的类名就会造成类名冲突,可以通过以下方式处理冲突:
(1)将css文件命名为”xxx.module.css”
(2)main.js中写成以下形式
1 | import index from "./index.module.css" |
index为一个对象,该对象属性的属性名为原始类名,属性值为原始类名+哈希值
我们可以将对应元素的类名设置成对应属性就可以避免类名冲突
2、CSS模块化原理如下:
(1)module.css是一种约定,说明要开启模块化
(2)会将所有类名进行替换,变成类名+哈希值的样子
(3)同时创建一个映射对象如:{“xxx”:”xxx_as51we2“}
(4)将替换后的内容塞入style标签再插入html的head中
(5)将xxx.module.css变成js脚本
(6)将创建的映射对象在脚本中进行默认导出
Vite处理Less
首先下载Less,编写less文件如下:
1 | //index.module.less |
修改main.js文件如下:
1 | import index from "./index.module.less" |
Vite关于CSS的配置
1 | import { defineConfig} from "vite"; |