PostCSS 的定位是一台 CSS 后处理器:它先把 CSS 解析成抽象语法树,再让各个插件按需改写这棵树,最后输出新的 CSS。Autoprefixer 负责补兼容前缀、cssnano 负责压缩、postcss-nesting 负责把嵌套语法降级、postcss-preset-env 负责把未来语法提前用上——而 TailwindCSS 的核心引擎本身就是构建在 PostCSS 之上的一个插件。
和 Sass 的定位不同,PostCSS 不发明新语法,只是把标准 CSS 逐步增强到目标浏览器可接受的形态,因此它常与 Sass 搭配而非互斥:预处理器负责组织与复用代码,PostCSS 负责兼容性与体积优化,两者串联在同一条流水线上。现代脚手架基本都内置了它,开发者要做的只是在配置文件里列出需要的插件。
/* postcss.config.js 的典型配置 */ module.exports = { plugins: [ require('autoprefixer'), /* 自动加兼容前缀 */ require('cssnano') /* 压缩体积 */ ] };