博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
引入stylelint对CSS/Sass做代码审查
阅读量:5930 次
发布时间:2019-06-19

本文共 1534 字,大约阅读时间需要 5 分钟。

规范越早引入越好,规范的约束永远不嫌多。

stylelint是什么?

stylelint 是一个基于 Javascript 的代码审查工具,它易于扩展,支持最新的 CSS 语法,也理解类似 CSS 的语法。此外,因为它是基于 JavaScript,所以比起 Ruby 开发的 scss-lint 速度更快。

stylelint 是一个强大和现代的 CSS 审查工具,有助于开发者推行统一的代码规范,避免样式错误。stylelint 由 PostCSS 提供技术支持,所以它也可以理解 PostCSS 解析的语法,比如 SCSS。

PostCSS 是一个使用 JS 解析样式的插件集合,它可以用来审查 CSS 代码,也可以增强 CSS 的语法(比如变量和混合宏),还支持未来的 CSS 语法、行内图片等等。正因为PostCSS解析器,因此stylelint支持SCSSLess以及新SugarSS。如果你想要实现另外一个自定义语法的支持,你可以通过PostLess得以实现!

PostCSS 的哲学是专注于处理一件事,并做到极致,目前它已经有了 200 多个插件,由于它们都是基于 JavaScript 编写的,所以运行速度非常快。

使用方法

上面copy写了一堆废话,其实不用我多言,既然你已经知道了stylelint那说明你已经遇到了css/scss不规范的难题且已经发现了stylelint的优点。下面,我们直接进入正题。

安装

npm install stylelint

引入

package.json里面加入以下配置(参考),其中rules`里面是我自己加入的一些配置。

"stylelint": {    "extends": "stylelint-config-standard",    "rules": {      "string-quotes": "single",      "property-no-unknown": [        true,        {          "ignoreProperties": [            "composes"          ]        }      ],      "selector-pseudo-class-no-unknown": [        true,        {          "ignorePseudoClasses": [            "global"          ]        }      ]    }  }

在这里要重点说一下,该配置是 stylelint 的官方推荐配置,自己基于它来拓展的话会事半功倍。

在代码commit时校验

我们需要的结果是,在代码commit时进行css/scss校验,不符合格式的代码禁止提交。

这里,我们需要借助来配置github hooks。

npm install husky --save-dev

package.json里面加入:

// Edit package.json{  "scripts": {    "precommit": "stylelint css/*.scss",    "...": "..."  }}

其中后面的目录可以自己修改,这样,就实现了在commit前进行css/scss代码校验。

图片描述

插件

光在代码提交前校验还是不够的,我们追求的是,在写了不符合规范的css/scss代码后,直接在编辑器中编辑器中提示。

WebStorm

WebStorm天然支持stylelint,只需在设置里面开启并配置安装包path即可。

图片描述

sublime

Atom

转载地址:http://ylevx.baihongyu.com/

你可能感兴趣的文章
Windows Server 2012 存储去重
查看>>
SQL/LINQ/Lamda 写法[转发]
查看>>
dns服务器迁移方法简单说明
查看>>
25.3. UUID()
查看>>
Hadoop - Mac OSX下配置和启动hadoop以及常见错误解决
查看>>
UIPassValue页面传值 UI_08(下)
查看>>
[译] 人人都是设计师。我们可以的
查看>>
前端战五渣学JavaScript——call、apply以及bind
查看>>
Flex布局应用
查看>>
你应该知道的前端--渲染原理
查看>>
typeof、instanceof、constructor...
查看>>
ES6 数组去重,求交并差集
查看>>
最长公共子串,动态规划
查看>>
gcc常用参数
查看>>
RabbitMQ Exchange
查看>>
Integer与int解惑
查看>>
go语言学习-mysql
查看>>
go []string slice utils
查看>>
华为DHCP SNOOPING配置
查看>>
结构体和类内存分配
查看>>