CSScomb近况
- 这个“工具”(姑且让我这么叫),在《Web前端开发最佳实践》里,被推荐了。
- github上可以看到项目始于2013.07.31,比较早了,最近的一次commit则是发生在2017.08.10(本文18年10月),感觉已经有点落寞了。
- 在作者的twitter上写着“I’m looking for a new maintainer for CSScomb project. If you’d like to help in any way, please write me to tonyganch+csscomb@gmail.com.”
- 我个人的理解,它是针对CSS的,而现在更多的,我们会对使用些预处理或者后处理工具,已经很少去编写原生的CSS了。CSScomb没有相应的支持更新,难免有各种各样的bug,对比美化格式、属性排序的优势,最终促成了大家对它的逐渐放手,也许未来会像jQuery那样吧。
CSScomb简介
- 官网上只有短短的一句话:“Makes your code beautiful”,图标是一个一看就很柔软的木梳子。
- 通过NPM可以安装CSScomb(
npm i csscomb
),一些编辑器上也有它的插件。 - 配置规则的方法也很简单
- 在根目录下放一个
.csscomb.json
- 写一个.css文件做模版
- 在根目录下放一个
使用方法也很简单
- 命令行
csscomb assets/css
模块引用方式
1
2
3var Comb = require('csscomb')
var comb = new Comb('zen')
comb.processPath('assets/css')
- 命令行
漂亮的官网
- 官网可以说非常的简洁干净了,这感觉真的舒爽。
- 一个getting started,一个build config,一个try online,然后放上自己的github和twitter,放上一些工具的插件,没了
- 这里要说他的build config,这个真的挺棒的,通过24个option来自定义自己的配置,而且不是洋洋洒洒列出一堆api或者参数说明,而是直接来了个选择题——每个option都给出sample,让用户选择,最后生成整套规则。而且每个sample,都用黄色标出改动,简直在看自己的记号笔标记。
我设置了24个选项之后的结果,保存为
.csscomb.json
即可。注意,这里是通过官网的简单设置的出来的,其实还有进一步的设置配置1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25{
"remove-empty-rulesets": true,
"always-semicolon": true,
"color-case": "upper",
"block-indent": " ",
"color-shorthand": false,
"element-case": "lower",
"leading-zero": false,
"quotes": "double",
"sort-order-fallback": "abc",
"space-before-colon": "",
"space-after-colon": " ",
"space-before-combinator": " ",
"space-after-combinator": " ",
"space-between-declarations": "\n",
"space-before-opening-brace": " ",
"space-after-opening-brace": "\n",
"space-after-selector-delimiter": " ",
"space-before-selector-delimiter": "",
"space-before-closing-brace": "\n",
"strip-spaces": true,
"tab-size": true,
"unitless-zero": true,
"vendor-prefix-align": true
}
关于CSScomb使用的一些问题
更多的配置
- 除了在官网跟着步骤做一些定制化,在CSScomb的github上,还有进一步的配置可以追加。
- 比如我们可以就简单的选择github上这个
csscomb.json
文件。里面包含了exclude
和sort-order
,将里面的内容平级地放进之前的.csscomb.json
里的对象里即可
在Visual Studio Code里使用
- 安装插件CSScomb
- 搜索一下关键字
csscomb.
修改配置- 保存时自动格式化:
csscomb.formatOnSave
,设为true的时候,就比较方便了,否则一般是通过选择命令CSSComb: Format styles
来进行 - 增加用户配置:
"csscomb.preset": {}
,然后在里面写进本应该放在项目的根目录下的.csscomb.json
里的内容,就能让编辑器自己帮我们格式化了。
- 保存时自动格式化:
CSScomb的工程化
- 在NPM上可以搜到一个叫做
csscomb-webpack-plugin
的插件 只需要在Webpack配置里增加一些配置即可在构建的过程应用。
1
2
3
4
5
6const CSSCombPlugin = require('csscomb-webpack-plugin');
module.exports = {
plugins: [
new CSSCombPlugin(options),
]
}
最后说点感想
- 配置其实都很赞,用了之后真的让人有一种都快要感染美观强迫症的感受。随便举例:
- 比如让颜色的十六进制都大写或者都小写、是否补全十六进制的位数,
- 比如按照字母表排序css属性
- 比如冒号前后加不加空格
- 比如单引号双引号
- 比如选择器和花括号换行之类的
- 比如对前缀做格式美化,哎呀这个太美了。
- 从某种角度说,其实这个插件非常适合新手。CSS代码的逻辑性并不强,一般的开发者写CSS样式也很随意,比如你写成一行都没问题——事实上代码压缩工具就是这么干的,移除了所有空格和格式。这个插件有助于培养新手良好的代码风格。
- 从代码的可读性和可维护性角度来考虑,在开发过程中可以防止属性的重复定义,后续维护过程中能快速定位特定的样式属性。
- 用来看别人的CSS代码也很方便(虽然谷歌开发者工具里可一键格式化,但是毕竟不是你想要的那种格式),调试的时候会看的更明白更清晰。
- 希望CSScomb能有第二春。