文章目录
1. postcss是什么
PostCSS 是解析器,它将 CSS 解析为对象树(AST)。然后插件改变了这棵树,最后PostCSS 从一个修改过的对象树生成一个新的 CSS 字符串。
PostCSS 不是一个预处理器,也不是一种添加语法糖的方式,它是一个用于创建 CSS 工具的框架,是一个用 JavaScript 插件来转换样式的工具。一个 PostCSS 插件是一个接收并且通常从 PostCSS 解析器转换 CSS AST 的函数。PostCSS 让任何有 JavaScript 经验的人都可以创建自己的插件。
2. postcss7
2.1 编写插件
编写适用于postcss7.x版本的插件语法:
// 需要导入postcss
const postcss = require('postcss');
module.exports = postcss.plugin('postcss-merge2', (opts = {
}) => {
return (root, result) => {
root.walkRules(rule => {
...
})
}
})
3. postcss8带来的新特性
插件开发者现在可以在postcss8.0中选择使用一个新的 API,这个 API 可以提高构建速度,并减少其工具的最终用户的依赖大小。
3.1 编写插件
编写适用于postcss8.x的插件使用新的插件 API,不需要导入 PostCSS,会得到所有的类和方法作为函数的第二个参数:
- const {
decl: Declaration } =