了解PostCSS原理

前端精髓

共 948字,需浏览 2分钟

 · 2021-04-20


前端工程化日益成熟今天,我们对于工具越来越深的封装。不管是从vue-cli的3.0版本起,还是umi、bigfish 等前端脚手架,对于webpack都封装在内,对于工程化无疑是高效的,但也在一定程度上让新手们失去了从零配置一个项目的机会,所以很多时候还是希望能透过大神们的框架,研究一下底层结构。

简介

PostCSS是一个通过JS插件转换样式表的工具,它本身并不是一门新的CSS语言,而是一个平台,提供插件扩展服务即JS API,开发者可以根据这些接口,定制开发插件,目前比较流行的插件工具如:Autoprefixer 、Stylelint 、CSSnano。


类似于babel/core提供核心API让babel-plugin-进行代码转换。

postCss 给出了很多操作 css 规则的方法。处理 css 的方式其实有2种:编写 postcss plugin,如果你的操作非常简单也可以直接利用 postcss.parse 方法拿到 css ast 后分析处理。

postcss plugin

1、postcss 插件如同 babel 插件一样,有固定的格式。

2、注册个插件名,并获取插件配置参数 opts。

3、返回值是个函数,这个函数主体是你的处理逻辑,有2个参数,一个是 root,AST的根节点。另一个是 result,返回结果对象,譬如 result.css,获得处理结果的 css 字符串。


export default postcss.plugin('postcss-plugin-name', function (opts) {  opts = opts || {};  return function (root, result) {    // 处理逻辑  };});


可以用 postcss.parse 来处理一段 css 文本,拿到 css ast,然后进行处理,再通过调用 toResult().css 拿到处理后的 css 输出。

浏览 15
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报