????上一篇文章主要講了stylelint的簡單實用阱飘,這里續(xù)了一片關(guān)于規(guī)則什么的詳細(xì)點(diǎn)的文。
????這篇文章主要是對stylelint的構(gòu)造和規(guī)則虱颗,根據(jù)官網(wǎng)的英文文檔沥匈, 我花了點(diǎn)時間進(jìn)行了簡單的翻譯工作,把主要的意思大概寫了一下忘渔,算是一篇筆記吧高帖。具體的規(guī)則方面有些我就直接用有道翻譯的,因為量太大了畦粮,我自己主要翻譯的就是前半段棋恼,加上規(guī)則的部分內(nèi)容,有道翻譯的沒翻譯好的锈玉,我順道給改了改爪飘。自己寫的demo還沒有完善好,等找時間拉背,我完善之后上傳下师崎。
????其實吧,這個stylelint用起來基本上跟eslint差不多椅棺,也可以跟gulp一塊用犁罩,這個方面我還沒有開始研究,可能明天或者后天會進(jìn)行研究两疚。然后后續(xù)也可能再補(bǔ)上一篇文床估。感覺時間好不夠用,這一天研究研究诱渤,就過去了丐巫。好希望一天是240小時。大家看這篇文章要是有啥不懂的可以去官網(wǎng)查看查看勺美,其實里面有不少內(nèi)容我自己也沒有弄清楚呢递胧,還有待研究,大家要是有興趣的可以跟我一起討論討論赡茸。
stylelint configuration(構(gòu)造)
加載配置對象
????從工程中查找和加載配置項缎脾,一般會從當(dāng)前的工作目錄中,以下面的順序查找可能的來源:
-
package.json
里面的stylelint
屬性 - 一個單獨(dú)的
.stylelintrc
文件 - 一個
stylelint.config.js
到處JS對象的文件
????.stylelintrc
文件格式可以是JSON占卧,可以是YAML格式的遗菠,你也可以添加文件擴(kuò)展名來指定文件內(nèi)容格式是JSON联喘,YAML,或者是JS格式辙纬。.stylelintrc.json
, .stylelintrc.yaml
, .stylelintrc.js
耸袜。
????你可能需要使用擴(kuò)展,使你的文本編輯器牲平,可以更好地解釋文件堤框,并幫助語法檢查和高亮。
????一旦其中之一被發(fā)現(xiàn)和解析纵柿,搜索將停止蜈抓,該對象將被使用。
配置對象
????配置對象可以有下面這些屬性
rules
1.基本格式
????個人認(rèn)為規(guī)則算是檢查器里極其重要的配置項了昂儒,stylelint有超過一百五十條的規(guī)則沟使,這些規(guī)則沒有是默認(rèn)打開的,都需要自己根據(jù)自己的需要進(jìn)行設(shè)置開啟渊跋。
????規(guī)則屬性是一個對象腊嗡,它的鍵是規(guī)則的名稱,值是規(guī)則配置拾酝。每個規(guī)則配置符合下列格式之一:
- 單個值(primary option)
- 一個有兩個值的數(shù)組([primary option,secondary option])
- null (關(guān)閉規(guī)則)
示例:
{
"rules": {
"block-no-empty": null,
"color-no-invalid-hex": true,
"comment-empty-line-before": [ "always", {
"ignore": ["stylelint-commands", "between-comments"],
} ],
"declaration-colon-space-after": "always",
"indentation": ["tab", {
"except": ["value"]
}],
"max-empty-lines": 2,
"rule-nested-empty-line-before": [ "always", {
"except": ["first-nested"],
"ignore": ["after-comment"],
} ],
"unit-whitelist": ["em", "rem", "%", "s"]
}
}
指定了一個primary option就是打開了一個規(guī)則燕少。
2.在css文件中關(guān)閉規(guī)則
????在css文件中,你可以暫時關(guān)閉某條規(guī)則蒿囤,也可以關(guān)閉所有規(guī)則:
/* stylelint-disable */
a {}
/* stylelint-enable */
????你也可以關(guān)閉個別規(guī)則:
/* stylelint-disable selector-no-id, declaration-no-important */
#id {
color: pink !important;
}
/* stylelint-enable */
????在你不需要明確地重新啟用的規(guī)則處客们,你也可以通過/* stylelint-disable-line */
關(guān)閉個別行:
#id { /* stylelint-disable-line */
color: pink !important; /* stylelint-disable-line declaration-no-important */
}
????當(dāng)然你也可以通過/* stylelint-disable-next-line */
來關(guān)閉那些你不需要明確重新啟用的下一行規(guī)則:
#id {
/* stylelint-disable-next-line declaration-no-important */
color: pink !important;
}
????有些復(fù)雜的,重疊的禁用和啟用模式同樣支持:
/* stylelint-disable */
/* stylelint-enable foo */
/* stylelint-disable foo */
/* stylelint-enable */
/* stylelint-disable foo, bar */
/* stylelint-disable baz */
/* stylelint-enable baz, bar */
/* stylelint-enable foo */
3.嚴(yán)重程度:error & warning
????跟eslint差不多材诽,stylelint也有嚴(yán)重程度的分別底挫,默認(rèn)情況下,所有的規(guī)則都有一個error
級別的嚴(yán)重程度脸侥,你可以在配置中通過添加defaultSeverity
屬性來改變默認(rèn)值
????要調(diào)整任何具體規(guī)則的嚴(yán)重程度建邓,使用輔助選項severity
,可獲得的值有
- warning
- error
示例:
// error-level severity examples
{ "indentation": 2 }
{ "indentation": [2] }
// warning-level severity examples
{ "indentation": [2, { "severity": "warning" } ] }
{ "indentation": [2, {
"except": ["value"],
"severity": "warning"
}]
}
不同的情況會使用不同的嚴(yán)重級別睁枕。例如不同的顯示官边,或者不同的退出過程等等。
4.自定義消息
????如果您想在一個規(guī)則被違反譬重,提供自定義消息拒逮,你可以用兩種方式做到這一點(diǎn):提供一個message
選項,或者寫一個自定義格式臀规。
????所有的規(guī)則都接受一個次要選項message
,如果提供了該選項,意味著將會取代任何默認(rèn)提供的標(biāo)準(zhǔn)信息栅隐。舉個例子塔嬉,以下規(guī)則配置將替代幾個自定義消息:
{
"color-hex-case": [ "lower", {
"message": "Lowercase letters are easier to distinguish from numbers"
} ],
"indentation": [ 2, {
"ignore": ["block"],
"message": "Please use 2 spaces for indentation. Tabs make The Architect grumpy.",
"severity": "warning"
} ]
}
如果你想最大程度的進(jìn)行控制玩徊,你應(yīng)該寫自定義格式的規(guī)則。(自定義消息部分的思想我大概理解谨究,但是不怎么會翻譯恩袱。。尷尬胶哲。畔塔。。)
擴(kuò)展
????你的配置可以擴(kuò)展一個現(xiàn)有的配置鸯屿,無論這個配置是你自己的還是第三方的澈吨。當(dāng)一個配置擴(kuò)展了另一個配置,它在被擴(kuò)展的配置項開始的時候開始寄摆,并且添加在其之后或者直接覆蓋當(dāng)前配置谅辣。
????你也可以擴(kuò)展現(xiàn)有配置的陣列,優(yōu)先于陣列中的各項(因此第一項壓倒一切婶恼,第二個項目壓倒一切除了第一項桑阶,以此類推。個人理解就是你一個草民擴(kuò)展了勾邦,你當(dāng)皇帝了蚣录,那你就是老大,比誰都牛眷篇,你要是宰相呢包归,那你就是除了皇帝以外,比誰都厲害铅歼,你要是什么七品芝麻官公壤,除了比你級別高的,你比下面的人都厲害等等椎椰。)厦幅。
????舉個例子,擴(kuò)展下stylelint-config-standard
改變縮進(jìn)的標(biāo)簽慨飘,并且關(guān)閉number-leading-zero
規(guī)則:
{
"extends": "stylelint-config-standard",
"rules": {
"indentation": "tab",
"number-leading-zero": null
}
}
或者用stylelint-config-standard
開始确憨,然后在這頂部把myExtendableConfig
分層,然后覆蓋縮進(jìn)規(guī)則
{
"extends": [
"stylelint-config-standard",
"./myExtendableConfig"
],
"rules": {
"indentation": "tab"
}
}
extends
的值是locater
,最終是require()
瓤的,所以它可以適合用node
的require.resolve()
算法的任何格式休弃。這就意味著locater
可以是:
- 在
node_modules
模塊的名稱。 - 絕對文件路徑圈膏。
- 名為.js或者以.json擴(kuò)展名的文件的相對路徑塔猾,相對于參考配置。
plugins(插件)
????插件是支持方法稽坤,工具集丈甸,非標(biāo)準(zhǔn)CSS功能糯俗,或者非常具體的用例規(guī)則或套由社區(qū)建立規(guī)則。
????想要使用插件睦擂,就添加plugins
陣列配置項到你的配置文件中得湘,值可以是一個npm模塊的名字,可以使一個絕對路徑顿仇,也可以是一個調(diào)用配置文件的相對路徑淘正。
{
"plugins": [
"../special-rule.js"
],
"rules": {
"plugin/special-rule": "everything"
},
}
????一個插件可以提供一個規(guī)則或者一組規(guī)則,如果你用的插件提供了一組規(guī)則臼闻,只需調(diào)用模塊中的插件配置值鸿吆,并且使用它在rules
中提供的規(guī)則。
{
"plugins": [
"../some-rule-set.js"
],
"rules": {
"some-rule-set/first-rule": "everything",
"some-rule-set/second-rule": "nothing",
"some-rule-set/third-rule": "everything"
},
}
Processors(處理器)
????處理器是掛鉤到stylelint的管道些阅,修改的道路上的代碼到stylelint并就其出路改變結(jié)果的功能伞剑。
????處理器只能與CLI和節(jié)點(diǎn)的API,而不是與PostCSS插件使用市埋。 (該P(yáng)ostCSS插件會忽略它們黎泣。)
????使用的話,添加processors
陣列配置項到配置文件中缤谎,用起來跟擴(kuò)展差不都多抒倚。
{
"processors": ["stylelint-html-processor"],
"rules": {..},
}
如果你的處理器有選項,其第一個項目是“定位”和第二項是選擇對象坷澡。
{
"processors": [
"stylelint-html-processor",
[ "some-other-processor", { "optionOne": true, "optionTwo": false } ]
],
"rules": {..}
}
ignoreFiles
????提供一個glob或globs數(shù)組忽略特定文件托呕。
????另一種方法是使用一個.stylelintignore
文件,描述如下频敛。
????如果glob是絕對路徑项郊,它們就這樣用。如果他們是相對的斟赚,它們是相對于分析
- configBasedir
- 配置文件的路徑着降,如果配置是stylelint發(fā)現(xiàn)的一個加載的文件
process.cwd()
這個屬性呢,從擴(kuò)展配置剝離:只有root級別的配置可以忽略文件拗军。
defaultSeverity
????默認(rèn)嚴(yán)重級別
- error
- warning
.stylelintignore
????你可以使用.stylelintignore
文件(或者指定另一個忽略模式的文件)來忽略特定文件任洞。(另一種方法是使用一個config.ignoreFiles,如上所述)
????在你.stylelintignore
文件中的模式必須匹配.gitignore
語法发侵。(之后交掏,node-ignore
會解析你的模式),這其中的一個含義是刃鳄,在你文件中的模式總是相對于process.cwd()
進(jìn)行分析
????stylelint會在process.cwd()
中尋找一個.stylelintignore
文件盅弛,你還可以指定你的忽略模式的文件路徑(絕對或相對于process.cwd())使用--ignore路徑(在CLI)和ignorePath(在JS)選項。
stylelint rules
????規(guī)則專注于規(guī)范化css,旨在作用于廣大用戶熊尉。除了規(guī)則呢罐柳,還有插件掌腰,插件是由社區(qū)建立狰住,可以支持方法,工具集齿梁,非標(biāo)準(zhǔn)CSS功能催植,或者非常具體的用例規(guī)則算色。
????每一條規(guī)則是獨(dú)立的拜效,默認(rèn)情況下關(guān)閉。規(guī)則也沒有默認(rèn)值崇众。
規(guī)則列表
Color
-
color-hex-case
: 指定大寫或小寫十六進(jìn)制的顏色省核。 -
color-hex-length
: 指定十六進(jìn)制顏色長或短的符號稿辙。 -
color-named
: 需要(如果可能)或不允許命名的顏色。 -
color-no-hex
: 不允許十六進(jìn)制的顏色气忠。 -
color-no-invalid-hex
: 禁止無效的十六進(jìn)制顏色邻储。
font-family
-
font-family-name-quotes
:指定是否引號應(yīng)該圍繞字體系列名稱中使用。
function
-
function-blacklist
:指定不允許的功能黑名單 -
function-calc-no-unspaced-operator
:計算的函數(shù)中禁止的unspaced執(zhí)行 -
function-comma-newline-after
:要求一個新行或函數(shù)的逗號后禁止空白旧噪。 -
function-comma-newline-before
: 要求一個新行或函數(shù)的逗號之前不允許空白吨娜。 -
function-comma-space-after
: 要求一個空格或函數(shù)的逗號后禁止空白。 -
function-comma-space-before
:要求一個空格或函數(shù)的逗號前禁止空白淘钟。 -
function-linear-gradient-no-nonstandard-direction
:禁止在線性梯度方向值()宦赠,根據(jù)標(biāo)準(zhǔn)語法是無效的呼叫。 -
function-max-empty-lines
: 限制方法中相鄰的空行數(shù) -
function-name-case
: 指定大寫或小寫的函數(shù)名米母。 -
function-parentheses-newline-inside
:要求一個新行或函數(shù)的括號內(nèi)不允許空白勾扭。 -
function-parentheses-space-inside
: 要求一個空格或函數(shù)的括號內(nèi)不允許空白。 -
function-url-data-uris
: 要求或禁止數(shù)據(jù)的URI的URL -
function-url-no-scheme-relative
:不允許文檔相對的URL铁瞒。 -
function-url-quotes
: 要求或禁止對于網(wǎng)址報價 -
function-url-scheme-whitelist
: 指定允許URL方案的白名單妙色。 -
function-whitelist
: 指定允許的功能的白名單。 -
function-whitespace-after
: 要求方法后不允許空白精拟。
Number
-
number-leading-zero
:要求或分?jǐn)?shù)低于1的數(shù)字禁止前導(dǎo)零燎斩。 -
number-max-precision
:限制允許的小數(shù)位數(shù)的數(shù)目。 -
number-no-trailing-zeros
: 禁止在數(shù)量尾隨零蜂绎。
String
-
string-no-newline
: 禁止在字符串(轉(zhuǎn)義)換行栅表。 -
string-quotes
: 指定字串,單或雙引號师枣。
Length
-
length-zero-no-unit
: 禁止單位零長度怪瓶。
Time
-
time-no-imperceptible
: 禁止動畫和過渡小于或等于100毫秒。
Unit
-
unit-blacklist
: 指定不允許使用單位的黑名單践美。 -
unit-case
: 指定大寫或小寫的單位洗贰。 -
unit-no-unknown
: 禁止未知的單位找岖。 -
unit-whitelist
: 指定允許單位的白名單>
Value
-
value-keyword-case
: 指定大寫或小寫關(guān)鍵字的值。 -
value-no-vendor-prefix
: 不允許供應(yīng)商前綴值敛滋。
Value list
-
value-list-comma-newline-after
: 逗號后需要一個換行符或不允許空白值列表许布。 -
value-list-comma-newline-before
: 逗號前需要一個換行符或不允許空白值列表。 -
value-list-comma-space-after
: 需要一個空格或者逗號后不允許空白值列表绎晃。 -
value-list-comma-space-before
:需要一個空格或者逗號前不允許空白值列表蜜唾。 -
value-list-max-empty-lines
: 限制相鄰的數(shù)量值列表內(nèi)空行。
Custom property
-
custom-property-empty-line-before
: 自定義屬性之前equire或不允許空行庶艾。 -
custom-property-no-outside-root
: 不允許自定義屬性以外的:根規(guī)則袁余。 -
custom-property-pattern
: 為自定義屬性指定一個模式。
Shorthand property
-
shorthand-property-no-redundant-values
:不允許在簡寫屬性冗余值咱揍。
Property
-
property-blacklist
: 指定一個不允許屬性的黑名單颖榜。 -
property-case
: 為屬性指定小寫或大寫。 -
property-no-unknown
: 不允許未知屬性煤裙。 -
property-no-vendor-prefix
: 不允許前綴的屬性掩完。 -
property-whitelist
: 指定一個白名單允許屬性。
Keyframe declaration
-
keyframe-declaration-no-important
: 不允許!important在關(guān)鍵幀聲明积暖。
Declaration
-
declaration-bang-space-after
: bang聲明之后需要一個空格或者不允許空白 -
declaration-bang-space-before
: bang聲明之前需要一個空格或者不允許空白 -
declaration-colon-newline-after
: 冒號后的聲明需要一個換行符或不允許空白藤为。 -
declaration-colon-space-after
: 冒號后的聲明需要一個空格或不允許空白。 -
declaration-colon-space-before
: 冒號之前的聲明需要一個空格或不允許空白夺刑。 -
declaration-empty-line-before
: 要求聲明前不允許空一行缅疟。 -
declaration-no-important
: 不允許!important聲明。 -
declaration-property-unit-blacklist
: 指定一個黑名單內(nèi)不允許聲明屬性遍愿。 -
declaration-property-unit-whitelist
: 指定一個白名單內(nèi)允許聲明屬性存淫。 -
declaration-property-value-blacklist
: 指定一個黑名單,不允許在聲明屬性和值對。 -
declaration-property-value-whitelist
: 指定一個允許屬性和值對聲明的白名單沼填。
Declaration block
-
declaration-block-no-duplicate-properties
: 不允許復(fù)制屬性塊中聲明 -
declaration-block-no-ignored-properties
:不允許被忽略是因為另一個屬性值的屬性值相同的規(guī)則桅咆。 -
declaration-block-no-redundant-longhand-properties
: 不允許手寫屬性,可以組合成一個簡寫屬性。 -
declaration-block-no-shorthand-property-overrides
: 不允許簡寫屬性覆蓋相關(guān)手寫屬性聲明塊坞笙。 -
declaration-block-properties-order
: 聲明塊中指定的順序?qū)傩浴?/li> -
declaration-block-semicolon-newline-after
: 要求一個換行符或不允許空白塊分號后岩饼。 -
declaration-block-semicolon-newline-before
: 要求一個換行符或不允許空白塊分號之前的聲明。 -
declaration-block-semicolon-space-after
: 要求一個空間或不允許空白塊分號后的聲明薛夜。 -
declaration-block-semicolon-space-before
: 要求一個空間或不允許空白塊分號之前的聲明 -
declaration-block-single-line-max-declarations
: 限制聲明在一行聲明塊的數(shù)量 -
declaration-block-trailing-semicolon
: 要求或不允許在聲明塊后面的分號籍茧。
Block
-
block-closing-brace-empty-line-before
: 要求或不允許關(guān)閉括號前空一行。 -
block-closing-brace-newline-after
: 需要一個換行符或不允許關(guān)閉括號后的空白梯澜。 -
block-closing-brace-newline-before
: 需要一個換行符或不允許空白關(guān)閉括號前的塊寞冯。 -
block-closing-brace-space-after
: 需要一個空間或不允許關(guān)閉括號后的空白塊。 -
block-closing-brace-space-before
: 在關(guān)閉括號前的塊需要一個空格或者不允許空白。 -
block-no-empty
: 不允許空塊 -
block-no-single-line
: 不允許單行塊 -
block-opening-brace-newline-after
: 開括號的塊之后需要新的一行吮龄。 -
block-opening-brace-newline-before
: 開括號的塊之后需要一個換行符或不允許空白 -
block-opening-brace-space-after
: 開括號的塊之后需要一個空格或不允許空白俭茧。 -
block-opening-brace-space-before
: 開括號的塊之前需要一個空格或不允許空白。
Selector
-
selector-attribute-brackets-space-inside
: 在括號里的屬性選擇器需要一個空格或者不允許空白漓帚。 -
selector-attribute-operator-blacklist
: 指定一個黑名單不允許屬性的操作符母债。 -
selector-attribute-operator-space-after
: 需要一個空間或不允許空格后運(yùn)營商在屬性選擇器。 -
selector-attribute-operator-space-before
: 需要一個空間或不允許空格內(nèi)運(yùn)營商之前屬性選擇器胰默。 -
selector-attribute-operator-whitelist
: 指定一個屬性允許運(yùn)營商的白名單场斑。 -
selector-attribute-quotes
: 需要或不允許引用屬性值漓踢。 -
selector-class-pattern
: 指定一個模式類選擇符牵署。 -
selector-combinator-space-after
: 需要一個空間或不允許空格后的組合子選擇器。 -
selector-combinator-space-before
: 需要一個空間或不允許空格前的組合子選擇器喧半。 -
selector-descendant-combinator-no-non-space
: 不允許的字符的后代組合子選擇器進(jìn)行技術(shù)改造奴迅。 -
selector-id-pattern
: 指定一個模式,id選擇器。 -
selector-max-compound-selectors
: 在一個選擇器里面限制復(fù)合選擇器的數(shù)量挺据。 -
selector-max-specificity
: 限制的特異性選擇器取具。 -
selector-nested-pattern
: 指定一個模式選擇器的規(guī)則嵌套規(guī)則。 -
selector-no-attribute
: 不允許屬性選擇器扁耐。 -
selector-no-combinator
: 不允許在選擇器組合暇检。 -
selector-no-id
: 不允許id選擇器。 -
selector-no-qualifying-type
: 不允許符合條件的選擇器的類型婉称。 -
selector-no-type
: 不允許類型選擇器块仆。 -
selector-no-universal
: Disallow the universal selector. -
selector-no-vendor-prefix
: 不允許選擇器的前綴。 -
selector-pseudo-class-blacklist
: 指定一個黑名單禁止偽類選擇器王暗。 -
selector-pseudo-class-case
: 為偽類選擇器指定小寫或大寫悔据。 -
selector-pseudo-class-no-unknown
: 不允許未知的偽類選擇器。 -
selector-pseudo-class-parentheses-space-inside
: 需要一個空格或不允許空格在括號里面的偽類選擇器俗壹。 -
selector-pseudo-class-whitelist
: 偽類選擇器允許指定一個白名單科汗。 -
selector-pseudo-element-case
: 為偽元素選擇器指定小寫或大寫。 -
selector-pseudo-element-colon-notation
: 為適用的偽元素指定單引號或雙冒號符號绷雏。 -
selector-pseudo-element-no-unknown
: 不允許未知的偽元素選擇器头滔。 -
selector-root-no-composition
: 在選擇器不允許根的構(gòu)成。 -
selector-type-case
: 指定小寫或大寫類型選擇器涎显。 -
selector-type-no-unknown
: 不允許未知類型選擇器坤检。 -
selector-max-empty-lines
: 限制內(nèi)相鄰的空行選擇器的數(shù)量。
Selector list
-
selector-list-comma-newline-after
: 需要一個換行符或不允許空白選擇逗號后的列表棺禾。 -
selector-list-comma-newline-before
: 逗號前需要一個換行符或不允許空白選擇器列表缀蹄。 -
selector-list-comma-space-after
: 需要一個空格或者逗號后不允許空格選擇器列表。 -
selector-list-comma-space-before
: 需要一個空格或者逗號前不允許空格選擇器列表。
Root rule
-
root-no-standard-properties
: 根規(guī)則內(nèi)不允許標(biāo)準(zhǔn)屬性缺前。
Rule
-
rule-nested-empty-line-before
: 需要或不允許嵌套規(guī)則前空一行蛀醉。 -
rule-non-nested-empty-line-before
: 需要或不允許non-nested規(guī)則前空一行。
Media feature
-
media-feature-colon-space-after
: 需要一個空間或不允許空格在冒號之后媒體的特性衅码。 -
media-feature-colon-space-before
: 需要一個空間或不允許空格在冒號之前媒體的特性拯刁。 -
media-feature-name-case
: 為媒體特性名稱指定小寫或大寫。 -
media-feature-name-no-unknown
: 不允許未知的媒體功能的名字逝段。 -
media-feature-name-no-vendor-prefix
: 不允許媒體特性名稱的前綴垛玻。 -
media-feature-no-missing-punctuation
: 不允許標(biāo)點(diǎn)non-boolean媒體功能 -
media-feature-parentheses-space-inside
: 需要一個空間或不允許空格在括號里面的媒體功能。 -
media-feature-range-operator-space-after
: 需要一個空間或不允許空白范圍運(yùn)算符后媒體的特性奶躯。 -
media-feature-range-operator-space-before
: 之前需要一個空間或不允許空格符范圍在媒體功能帚桩。
Custom media
-
custom-media-pattern
: 為定制媒體查詢名稱指定一個模式。
Media query list
-
media-query-list-comma-newline-after
: 需要一個換行符或不允許空格后媒體查詢的逗號分隔列表嘹黔。 -
media-query-list-comma-newline-before
: 需要一個換行符或不允許空格之前媒體查詢的逗號分隔列表 -
media-query-list-comma-space-after
: 需要一個空間或不允許空格后媒體查詢的逗號分隔列表账嚎。 -
media-query-list-comma-space-before
:需要一個空間或不允許空格之前媒體查詢的逗號分隔列表。
At-rule
-
at-rule-blacklist
: 不允許at-rules指定一個黑名單儡蔓。 -
at-rule-empty-line-before
: 需要或不允許at-rules前空一行郭蕉。 -
at-rule-name-case
: 指定at-rules小寫或大寫的名字。 -
at-rule-name-newline-after
: at-rule名稱后需要一個換行符喂江。 -
at-rule-name-space-after
: 需要一個空格后at-rule名稱召锈。 -
at-rule-no-unknown
: 不允許at-rules不明。 -
at-rule-no-vendor-prefix
: 不允許at-rules前綴获询。 -
at-rule-semicolon-newline-after
: 需要一個換行符之后at-rules的分號涨岁。 -
at-rule-whitelist
: 指定允許at-rules的白名單。
stylelint-disable comment
-
stylelint-disable-reason
: 需要一個理由stylelint-disable之前或之后的評論發(fā)表評論筐付。
Comment
-
comment-empty-line-before
: 需要或不允許評論之前一個空行卵惦。 -
comment-no-empty
: 不允許空的評論。 -
comment-whitespace-inside
:需要或不允許空格里面的注釋標(biāo)記瓦戚。 -
comment-word-blacklist
: 指定一個黑名單內(nèi)不允許的話評論沮尿。
General / Sheet
-
indentation
: 指定縮進(jìn)。 -
max-empty-lines
: 限制數(shù)量的相鄰的空行较解。 -
max-line-length
: 限制線的長度畜疾。 -
max-nesting-depth
: 限制的深度嵌套。 -
no-browser-hacks
: 不允許瀏覽器黑客,無關(guān)你目標(biāo)的瀏覽器印衔。 -
no-descending-specificity
: 不允許選擇器之后覆蓋選擇器的低特異性更高的特異性啡捶。 -
no-duplicate-selectors
: 不允許重復(fù)的選擇器。 -
no-empty-source
: 不允許空的來源奸焙。 -
no-eol-whitespace
: 不允許行尾空白瞎暑。 -
no-extra-semicolons
: 不允許額外的分號彤敛。 -
no-indistinguishable-colors
: 不允許產(chǎn)品極其接近的顏色相同。 -
no-invalid-double-slash-comments
: 不允許雙斜杠注釋(/ /…)不支持CSS了赌。 -
no-missing-end-of-source-newline
: 不允許丟失end-of-source換行墨榄。 -
no-unknown-animations
: 不允許動畫名稱不對應(yīng)@keyframes聲明。 -
no-unsupported-browser-features
: 不允許功能的瀏覽器不支持的目標(biāo)勿她。
官方配置標(biāo)準(zhǔn)文件
stylelint-config-standard
module.exports = {
"rules": {
"at-rule-empty-line-before": [ "always", {
except: [
"blockless-after-same-name-blockless",
"first-nested",
],
ignore: ["after-comment"],
} ],
"at-rule-name-case": "lower",
"at-rule-name-space-after": "always-single-line",
"at-rule-semicolon-newline-after": "always",
"block-closing-brace-empty-line-before": "never",
"block-closing-brace-newline-after": "always",
"block-closing-brace-newline-before": "always-multi-line",
"block-closing-brace-space-before": "always-single-line",
"block-no-empty": true,
"block-opening-brace-newline-after": "always-multi-line",
"block-opening-brace-space-after": "always-single-line",
"block-opening-brace-space-before": "always",
"color-hex-case": "lower",
"color-hex-length": "short",
"color-no-invalid-hex": true,
"comment-empty-line-before": [ "always", {
except: ["first-nested"],
ignore: ["stylelint-commands"],
} ],
"comment-no-empty": true,
"comment-whitespace-inside": "always",
"custom-property-empty-line-before": [ "always", {
except: [
"after-custom-property",
"first-nested",
],
ignore: [
"after-comment",
"inside-single-line-block",
],
} ],
"declaration-bang-space-after": "never",
"declaration-bang-space-before": "always",
"declaration-block-no-duplicate-properties": [ true, {
ignore: ["consecutive-duplicates-with-different-values"],
} ],
"declaration-block-no-ignored-properties": true,
"declaration-block-no-redundant-longhand-properties": true,
"declaration-block-no-shorthand-property-overrides": true,
"declaration-block-semicolon-newline-after": "always-multi-line",
"declaration-block-semicolon-space-after": "always-single-line",
"declaration-block-semicolon-space-before": "never",
"declaration-block-single-line-max-declarations": 1,
"declaration-block-trailing-semicolon": "always",
"declaration-colon-newline-after": "always-multi-line",
"declaration-colon-space-after": "always-single-line",
"declaration-colon-space-before": "never",
"declaration-empty-line-before": [ "always", {
except: [
"after-declaration",
"first-nested",
],
ignore: [
"after-comment",
"inside-single-line-block",
],
} ],
"function-calc-no-unspaced-operator": true,
"function-comma-newline-after": "always-multi-line",
"function-comma-space-after": "always-single-line",
"function-comma-space-before": "never",
"function-linear-gradient-no-nonstandard-direction": true,
"function-max-empty-lines": 0,
"function-name-case": "lower",
"function-parentheses-newline-inside": "always-multi-line",
"function-parentheses-space-inside": "never-single-line",
"function-whitespace-after": "always",
"indentation": 2,
"keyframe-declaration-no-important": true,
"length-zero-no-unit": true,
"max-empty-lines": 1,
"media-feature-colon-space-after": "always",
"media-feature-colon-space-before": "never",
"media-feature-name-case": "lower",
"media-feature-name-no-unknown": true,
"media-feature-no-missing-punctuation": true,
"media-feature-parentheses-space-inside": "never",
"media-feature-range-operator-space-after": "always",
"media-feature-range-operator-space-before": "always",
"media-query-list-comma-newline-after": "always-multi-line",
"media-query-list-comma-space-after": "always-single-line",
"media-query-list-comma-space-before": "never",
"no-empty-source": true,
"no-eol-whitespace": true,
"no-extra-semicolons": true,
"no-invalid-double-slash-comments": true,
"no-missing-end-of-source-newline": true,
"number-leading-zero": "always",
"number-no-trailing-zeros": true,
"property-case": "lower",
"property-no-unknown": true,
"rule-nested-empty-line-before": [ "always-multi-line", {
except: ["first-nested"],
ignore: ["after-comment"],
} ],
"rule-non-nested-empty-line-before": [ "always-multi-line", {
ignore: ["after-comment"],
} ],
"selector-attribute-brackets-space-inside": "never",
"selector-attribute-operator-space-after": "never",
"selector-attribute-operator-space-before": "never",
"selector-combinator-space-after": "always",
"selector-combinator-space-before": "always",
"selector-descendant-combinator-no-non-space": true,
"selector-list-comma-newline-after": "always",
"selector-list-comma-space-before": "never",
"selector-max-empty-lines": 0,
"selector-pseudo-class-case": "lower",
"selector-pseudo-class-no-unknown": true,
"selector-pseudo-class-parentheses-space-inside": "never",
"selector-pseudo-element-case": "lower",
"selector-pseudo-element-colon-notation": "double",
"selector-pseudo-element-no-unknown": true,
"selector-type-case": "lower",
"selector-type-no-unknown": true,
"shorthand-property-no-redundant-values": true,
"string-no-newline": true,
"unit-case": "lower",
"unit-no-unknown": true,
"value-list-comma-newline-after": "always-multi-line",
"value-list-comma-space-after": "always-single-line",
"value-list-comma-space-before": "never",
"value-list-max-empty-lines": 0,
},
}