UnoCSS 与Vite的集成配置

26 min read

UnoCSS 是一个原子化 CSS 引擎,它专注于提供高效、按需生成的实用类(utility classes)。这意味着它可以根据你在代码中实际使用的 CSS 类生成最小化的 CSS 文件。UnoCSS 的核心理念与 Tailwind CSS 类似,但它提供了更灵活的配置和更小的构建大小。

主要特点

  1. 按需生成: UnoCSS 只生成你在项目中实际使用的 CSS 类。
  2. 高度可配置: 可以通过配置文件自定义生成的实用类。
  3. 原子化 CSS: 类似于 Tailwind CSS,它提供了许多实用类,使得样式编写更加快速和一致。
  4. 与预处理器兼容: 可以和 Less、Sass 等预处理器一起使用。
  5. 轻量级: 生成的 CSS 文件通常比传统的 CSS 文件小。
  6. 插件系统: 支持通过插件扩展功能。

使用示例

  1. 安装:

    首先,你需要安装 UnoCSS。如果你正在使用 Node.js 项目,可以使用 npm 或 yarn 进行安装:

    npm install -D unocss
    

    yarn add -D unocss
    
  2. 配置:

    在项目的根目录下创建一个配置文件(例如 unocss.config.js),并配置你需要的实用类:

    // unocss.config.js
    import { defineConfig } from 'unocss';
    
    export default defineConfig({
      // UnoCSS 配置
    });
    
  3. 使用实用类:

    在你的 HTML 或 JavaScript/JSX 文件中,直接使用实用类来应用样式:

    <div class="p-4 text-center text-lg bg-blue-500 text-white">
      Hello, UnoCSS!
    </div>
    

    在这个例子中,p-4text-centertext-lgbg-blue-500text-white 是实用类。

集成

UnoCSS 可以集成到各种前端构建工具和框架中,如 Vite、Webpack、Rollup、Astro、Vue、React 等。具体的集成方式取决于所使用的工具或框架。

将 UnoCSS 集成到 Vite 项目中是一个相对直接的过程。以下是集成 UnoCSS 到基于 Vite 的前端项目的基本步骤:

1. 安装 UnoCSS

首先,你需要通过 npm 或 yarn 安装 UnoCSS 到你的项目中。在你的项目根目录下打开终端,然后运行以下命令之一:

npm install -D unocss

yarn add -D unocss

2. 配置 Vite 插件

在你的 Vite 配置文件中(通常是 vite.config.jsvite.config.ts),你需要引入 UnoCSS 并将其作为一个插件添加到 Vite 配置中。

// vite.config.js 或 vite.config.ts
import { defineConfig } from 'vite';
import UnoCSS from 'unocss/vite';

export default defineConfig({
  plugins: [
    UnoCSS(),
    // ...其他插件
  ],
  // ...其他配置
});

3. 创建 UnoCSS 配置文件(可选)

虽然 UnoCSS 可以在没有额外配置的情况下工作,但通常你会想要根据项目需求自定义它。创建一个 unocss.config.js 文件,可以让你定义自己的实用类、主题等。

// unocss.config.js
import { defineConfig } from 'unocss';

export default defineConfig({
  // 自定义 UnoCSS 配置
});

4. 使用实用类

在你的组件或 HTML 文件中,你现在可以开始使用 UnoCSS 提供的实用类了。例如,在一个 Vue 或 React 组件中:

<template>
  <div class="p-4 text-lg bg-blue-500 text-white">
    Welcome to UnoCSS!
  </div>
</template>

5. 运行 Vite 服务器

使用 Vite 的开发服务器启动你的应用程序。UnoCSS 将按需生成并应用你在项目中使用的实用类。

npm run dev

yarn dev