UnoCSS引擎调研

Daotin 于 2023-07-10 发布 编辑

目前痛点

  1. 之前的版本体验差。项目使用 tailwindcss,由于 tailwind 在v2.1+之后才支持JIT模式,所有很多随意的宽度(比如w-123)啥的不支持,要么在全局样式中的某个位置添加这样一个工具类,要么只能在tailwind.config.js 去定义,但是你又不能穷举所有的数字。
  2. 本地开发会比较慢。tailwind 的PurgeCSS这个清除操作仅在生成构建下有效,而开发环境下仍要使用包含了所有规则巨大的 CSS 文件。这在 Webpack 中表现可能并不明显,但在 Vite 中却有着巨大的影响,毕竟其他内容的加载都非常迅捷。
  3. 性能不是太好。从内部实现上看,Tailwind 依赖于 PostCSS 的 AST 进行修改,并且 Tailwind JIT 依赖于对文件系统的预扫描,并使用文件系统监听器来实现 HMR。文件 I/O 不可避免地会引入开销,而你的构建工具实际上需要再次加载它们。
  4. WindiCSS 已不再维护

UnoCSS 介绍

虽然目前 Tailwind 还不错,但是 UnoCSS 有更大的优势:

是否使用

新项目直接使用 UnoCSS,使用 tailwind 预设,可以直接上手。

老项目的话,tailwind 目前还不是瓶颈,需要的功能都有,暂不需要更新。