了解PostCSS原理

前端精髓

共 948字,需浏览 2分钟

 ·

2021-04-20 22:51


前端工程化日益成熟今天,我们对于工具越来越深的封装。不管是从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 输出。

浏览 23
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

分享
举报