用途:Lightning CSS 是用 Rust 编写的 CSS 解析器、转换器、打包器和压缩器,可在一条工具链中替代 PostCSS + autoprefixer + postcss-preset-env。适合在 Vite 中配置 CSS 处理、替换 PostCSS/autoprefixer 流程、设置浏览器目标转译、启用 CSS Modules、打包 @import 链以及生产环境压缩。
主要能力:Rust 原生实现,转换速度据称比 PostCSS 快 100 倍以上;内置语法降级(按目标把现代 CSS 转为兼容写法)、自动增删厂商前缀、CSS Modules 作用域类名、压缩(输出小于 esbuild 的 CSS 压缩器)以及内联 @import 的打包能力。可处理嵌套、oklch()、color-mix()、light-dark()、逻辑属性、媒体范围语法、clamp()/round()、@custom-media、:is()/:not()、system-ui 字体栈等。
使用方式:安装可用 npm add -D lightningcss browserslist,或全局 npm add -g lightningcss-cli,Bun 用 bun add -d lightningcss browserslist。Vite 中设置 css.transformer: 'lightningcss'、css.lightningcss.targets(通过 browserslistToTargets(browserslist('>= 0.25%')))以及 build.cssMinify: 'lightningcss';CSS Modules 需配置 css.lightningcss.cssModules 而非 css.modules;实验特性通过 drafts 开启。CLI 示例:lightningcss --minify --bundle --targets '>= 0.25%' input.css -o output.css,支持 --sourcemap 与 --error-recovery。浏览器目标可用 .browserslistrc 或 package.json 的 browserslist 字段配置。
适用场景与限制:适合需要快速 CSS 转译、前缀处理、模块化与压缩的前端项目,尤其与 UnoCSS 组合。若需生成工具类应使用 UnoCSS,规则检查用 Stylelint,CSS-in-JS 用框架工具,格式化用 Biome/Prettier;若依赖没有对应实现的 PostCSS 插件,则不适合直接替换。官方文档见 https://lightningcss.dev,Vite 集成见 https://vite.dev/guide/features#lightning-css。