開源比較流行的CSS lint方案:csslint、SCSS-Lint、Stylelint。javascript
咱們團隊選擇Stylelint,緣由以下:css
按順序查找,任何一項有值,就會結束查找html
在package.json
中的stylelint
屬性指定規則前端
在.stylelintrc
文件中指定,文件格式能夠是JSON
或者YAML
。也能夠給該文件加後綴,像這樣:.stylelintrc.json
,.stylelintrc.yaml
,.stylelintrc.yml
,.stylelintrc.js
java
stylelint.config.js
文件,該文件exports
一個配置對象span>git
rules優先級大於extends,建議採用extends方式統一管理github
module.exports = {
processors: [],
plugins: [],
extends: "stylelint-config-standard", // 這是官方推薦的方式
rules: {
"at-rule-empty-line-before": "always"|"never",
"at-rule-name-case": "lower"|"upper",
"block-no-empty": true,
}
};
複製代碼
stylelint
已有規則進行擴展,通常能夠支持一些非標準的css
語法檢查或者其餘特殊用途。一個插件會提供一個或者多個檢查規則stylelint
的處理流中加入本身的處理函數,就是這裏的processors
。 processors
只能做爲命令和Node API使用,PostCss
的插件會忽略它們。 經過processors
,咱們可讓styleline
去處理html
中style
標籤裏面的css
代碼,MarkDown
裏面的css
代碼塊或者js
裏面一段包含css
的字符串。// .stylelintignore
*.js
*.png
*.eot
*.ttf
*.woff
複製代碼
/* stylelint-disable */
/* (請說明禁止檢測的理由)前端組件限制類名 */
.cropper_topContainer .img-preview {
border: 0 none;
}
/* stylelint-enable */
複製代碼
stylelint --fix 就能搞定 更多語法規則web
webstorm能夠配置external tools實現autofix,添加keymap快捷鍵,若是但願在保存時自動fix,參考這裏json
external tool 配置內容:less
若是 browse repositories 中下載不了,能夠去 官網下載對應插件 在 plugins-> install plugin from disk安裝
規則制按期:本階段先定製規則文件,並要求組內成員在編輯器或IDE 安裝stylelint 插件輔助平常開發中使用。使用過程當中可針對遇到的狀況進行討論並適當調整具體stylelint 規則。
規則過渡期:本階段要求成員在開發過程當中抽出時間對之前項目的代碼進行優化。
規則監督期:本階段將探索創建相應的自動化監督機制並在平常開發中施行下去。在precommit鉤子中強制執行規則
參考: