国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

CSS代碼檢查工具stylelint

番茄西紅柿 / 952人閱讀

摘要:所以校驗規(guī)則的行動迫在眉睫。是一個強大的現(xiàn)代檢測器,可以讓開發(fā)者在樣式表中遵循一致的約定和避免錯誤。本文將詳細(xì)介紹代碼檢查工具概述擁有超過條的規(guī)則,包括捕捉錯誤最佳實踐控制可以使用的語言特性和強制代碼風(fēng)格規(guī)范。但是,該命令一定要慎用。

前面的話

  CSS不能算是嚴(yán)格意義的編程語言,但是在前端體系中卻不能小覷。 CSS 是以描述為主的樣式表,如果描述得混亂、沒有規(guī)則,對于其他開發(fā)者一定是一個定時炸彈,特別是有強迫癥的人群。CSS 看似簡單,想要寫出漂亮的 CSS 還是相當(dāng)困難。所以校驗 CSS 規(guī)則的行動迫在眉睫。stylelint是一個強大的現(xiàn)代 CSS 檢測器,可以讓開發(fā)者在樣式表中遵循一致的約定和避免錯誤。本文將詳細(xì)介紹CSS代碼檢查工具stylelint

 

概述

  stylelint擁有超過150條的規(guī)則,包括捕捉錯誤、最佳實踐、控制可以使用的語言特性和強制代碼風(fēng)格規(guī)范。它支持最新的CSS語法,并且靈活可配置

 

Vue

  下面在Vue框架下安裝使用stylelint

  1、安裝stylelint、stylint-config-standard和stylelint-order

npm install stylelint --save-dev
npm install stylelint-config-standard --save-dev
npm install stylelint-order --save-dev

  其中,stylelint是運行工具,stylelint-config-standard是stylelint的推薦配置,stylelint-order是CSS屬性排序插件

  安裝完成后,package.json文件中會自動添加如下字段

    "stylelint": "^9.1.3",
    "stylelint-config-standard": "^18.2.0",
    "stylelint-order": "^0.8.1",

  2、在根目錄下創(chuàng)建.stylelintrc配置文件

{ 
  "extends": "stylelint-config-standard", 
  "plugins": ["stylelint-order"],
  "rules": {
    "order/order": [
      "declarations",
      "custom-properties",
      "dollar-variables",
      "rules",
      "at-rules"
    ],
    "order/properties-order": [
      "position",
      "z-index",      
      "top",
      "bottom",
      "left",         
      "right",
      "float",
      "clear",
      "columns",
      "columns-width",
      "columns-count",
      "column-rule",
      "column-rule-width",
      "column-rule-style",
      "column-rule-color",
      "column-fill",
      "column-span",
      "column-gap",      
      "display",
      "grid",
      "grid-template-rows",
      "grid-template-columns",
      "grid-template-areas",
      "grid-auto-rows",
      "grid-auto-columns",
      "grid-auto-flow",
      "grid-column-gap",
      "grid-row-gap",
      "grid-template",
      "grid-template-rows",
      "grid-template-columns",
      "grid-template-areas",
      "grid-gap",
      "grid-row-gap",
      "grid-column-gap",
      "grid-area",
      "grid-row-start",
      "grid-row-end",
      "grid-column-start",
      "grid-column-end",
      "grid-column",
      "grid-column-start",
      "grid-column-end",
      "grid-row",
      "grid-row-start",
      "grid-row-end",      
      "flex",
      "flex-grow",
      "flex-shrink",
      "flex-basis",
      "flex-flow",
      "flex-direction",
      "flex-wrap",
      "justify-content",
      "align-content",
      "align-items",
      "align-self",
      "order",
      "table-layout",
      "empty-cells",
      "caption-side",
      "border-collapse",
      "border-spacing",
      "list-style",
      "list-style-type",
      "list-style-position",
      "list-style-image",
      "ruby-align",
      "ruby-merge",
      "ruby-position",
      "box-sizing",
      "width",
      "min-width",
      "max-width",
      "height",
      "min-height",
      "max-height",
      "padding",
      "padding-top",
      "padding-right",
      "padding-bottom",
      "padding-left",
      "margin",
      "margin-top",
      "margin-right",
      "margin-bottom",
      "margin-left",      
      "border",
      "border-width",
      "border-top-width",
      "border-right-width",
      "border-bottom-width",
      "border-left-width",
      "border-style",
      "border-top-style",
      "border-right-style",
      "border-bottom-style",
      "border-left-style",
      "border-color",
      "border-top-color",
      "border-right-color",
      "border-bottom-color",
      "border-left-color",
      "border-image",
      "border-image-source",
      "border-image-slice",
      "border-image-width",
      "border-image-outset",
      "border-image-repeat",
      "border-top",
      "border-top-width",
      "border-top-style",
      "border-top-color",
      "border-top",
      "border-right-width",
      "border-right-style",
      "border-right-color",
      "border-bottom",
      "border-bottom-width",
      "border-bottom-style",
      "border-bottom-color",
      "border-left",
      "border-left-width",
      "border-left-style",
      "border-left-color",
      "border-radius",
      "border-top-right-radius",
      "border-bottom-right-radius",
      "border-bottom-left-radius",
      "border-top-left-radius",
      "outline",
      "outline-width",
      "outline-color",
      "outline-style",
      "outline-offset",
      "overflow",
      "overflow-x",
      "overflow-y",
      "resize",
      "visibility",
      "font",
      "font-style",
      "font-variant",
      "font-weight",
      "font-stretch",
      "font-size",
      "font-family",
      "font-synthesis",
      "font-size-adjust",
      "font-kerning",        
      "line-height",
      "text-align",
      "text-align-last",
      "vertical-align",      
      "text-overflow",
      "text-justify",
      "text-transform",
      "text-indent",
      "text-emphasis",
      "text-emphasis-style",
      "text-emphasis-color",
      "text-emphasis-position",
      "text-decoration",
      "text-decoration-color",
      "text-decoration-style",
      "text-decoration-line",
      "text-underline-position",
      "text-shadow",      
      "white-space",
      "overflow-wrap",
      "word-wrap",
      "word-break",
      "line-break",
      "hyphens",
      "letter-spacing",
      "word-spacing",
      "quotes",
      "tab-size",
      "orphans",
      "writing-mode",
      "text-combine-upright",
      "unicode-bidi",
      "text-orientation",
      "direction",
      "text-rendering",
      "font-feature-settings",
      "font-language-override",
      "image-rendering",
      "image-orientation",
      "image-resolution",
      "shape-image-threshold",
      "shape-outside",
      "shape-margin",
      "color",
      "background",
      "background-image",
      "background-position",
      "background-size",
      "background-repeat",
      "background-origin",
      "background-clip",
      "background-attachment",
      "background-color",
      "background-blend-mode",
      "isolation",
      "clip-path",
      "mask",
      "mask-image",
      "mask-mode",
      "mask-position",
      "mask-size",
      "mask-repeat",
      "mask-origin",
      "mask-clip",
      "mask-composite",
      "mask-type",
      "filter",
      "box-shadow",
      "opacity",
      "transform-style",
      "transform",
      "transform-box",
      "transform-origin",
      "perspective",
      "perspective-origin",
      "backface-visibility",
      "transition",
      "transition-property",
      "transition-duration",
      "transition-timing-function",
      "transition-delay",
      "animation",
      "animation-name",
      "animation-duration",
      "animation-timing-function",
      "animation-delay",
      "animation-iteration-count",
      "animation-direction",
      "animation-fill-mode",
      "animation-play-state",
      "scroll-behavior",
      "scroll-snap-type",
      "scroll-snap-destination",
      "scroll-snap-coordinate",
      "cursor",
      "touch-action",
      "caret-color",
      "ime-mode",
      "object-fit",
      "object-position",
      "content",
      "counter-reset",
      "counter-increment",
      "will-change",
      "pointer-events",
      "all",
      "page-break-before",
      "page-break-after",
      "page-break-inside",
      "widows"
    ],    
    "no-empty-source": null,
    "property-no-vendor-prefix": [true, {"ignoreProperties": ["background-clip"]}],
    "number-leading-zero": "never",
    "number-no-trailing-zeros": true,
    "length-zero-no-unit": true,
    "value-list-comma-space-after": "always",
    "declaration-colon-space-after": "always",
    "value-list-max-empty-lines": 0,
    "shorthand-property-no-redundant-values": true,
    "declaration-block-no-duplicate-properties": true,
    "declaration-block-no-redundant-longhand-properties": true,
    "declaration-block-semicolon-newline-after": "always",
    "block-closing-brace-newline-after": "always",
    "media-feature-colon-space-after": "always",
    "media-feature-range-operator-space-after": "always",
    "at-rule-name-space-after": "always",
    "indentation": 2,
    "no-eol-whitespace": true,
    "string-no-newline": null
  }
}

  3、使用stylelint驗證CSS代碼即可,如驗證src目錄下的所有vue文件

 

react

  react中使用styled-components來書寫CSS代碼,stylelint同樣提供了插件來校驗CSS

  1、安裝stylelint、stylelint-processor-styled-components、stylelint-config-styled-components、stylelint-config-recommend、stylelint-order

npm install --save-dev stylelint@9.1.3
npm install --save-dev stylelint-processor-styled-components
npm install --save-dev stylelint-config-styled-components
npm install --save-dev stylelint-config-recommended
npm install --save-dev stylelint-order

  注意: 由于stylelint更新到9.2版本后,導(dǎo)致styled-components中的CSS代碼無法正常校驗,所以穩(wěn)妥起見,使用9.1.3版本的stylelint

  2、在根目錄下新建配置文件.stylelintrc

{
  "processors": ["stylelint-processor-styled-components"],
  "extends": [
    "stylelint-config-recommended",
    "stylelint-config-styled-components"
  ],
  "plugins": ["stylelint-order"],
  "rules": {
    "order/order": [
      "declarations",
      "custom-properties",
      "dollar-variables",
      "rules",
      "at-rules"
    ],
...
}

  3、同樣地,使用stylelint命令即可校驗

 

注意事項

  1、fix命令

  在stylelint的150多條規(guī)則中,使用fix命令,可以自動修復(fù)一些命令。但是,該fix命令一定要慎用。筆者在使用fix命令后,stylelint將React工程中的所有js文件里的代碼全部清除,只留著了下可以識別的css部分

stylelint **/*.js --fix

  2、配置scripts

  可以在package.json中配置stylelint的快捷方式

  "scripts": {
    "lintcss": "stylelint src/**/*.js"
  }

  這樣,使用npm run lintcss 命令即可實現(xiàn)相同效果

   3、如果提示如下錯誤

Error: No configuration provided for

  是因為在根路徑下沒有發(fā)現(xiàn)配置文件,如.stylelintrc

 

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/2236.html

相關(guān)文章

  • Lint Your Code

    摘要:形成良好統(tǒng)一的代碼規(guī)范,有利于提高代碼的可讀性,減少潛在的錯誤,便于團(tuán)隊協(xié)作開發(fā)。其中是可選的,如果沒有則禁用所有規(guī)則,如果有則禁用所有規(guī)則。也可以定義一個命令同時運行這兩個命令,我在這里使用了我們定義了在鉤子觸發(fā)時會執(zhí)行命令。 形成良好統(tǒng)一的代碼規(guī)范,有利于提高代碼的可讀性,減少潛在的錯誤,便于團(tuán)隊協(xié)作開發(fā)。本文簡單介紹JS、CSS、 Git Commit 的規(guī)范工具及用法。 Lin...

    hidogs 評論0 收藏0
  • 【翻譯】用PostCSS改善你的CSS代碼質(zhì)量

    摘要:代碼質(zhì)量這個術(shù)語對于程序員來說并不陌生。在本文中,我們將探討我們?nèi)绾文軌蚶脦椭覀儯3治覀兊拇a質(zhì)量更高。怎樣使用在這篇文章中,我們重點介紹幾個插件,可以幫助我們提高代碼質(zhì)量。使用相當(dāng)簡單的。這兩個插件可用于代碼分析。 代碼質(zhì)量這個術(shù)語對于程序員來說并不陌生。畢竟,每個開發(fā)人員都知道,代碼只是能工作是不夠的。它還應(yīng)該具備其他要素:它應(yīng)該是可讀的,良好的格式和一致性。它也應(yīng)該符合一些...

    sorra 評論0 收藏0
  • 前端進(jìn)階(13) - 搭建自己的前端腳手架

    摘要:搭建自己的前端腳手架一般新開發(fā)一個項目時,我們會首先搭建好一個腳手架,然后才會開始寫代碼。搭建腳手架可以用等命令行工具,也可以直接用等模板,如果這些都不能滿足你的個性化需求,可以嘗試搭建自己的前端腳手架。 搭建自己的前端腳手架 一般新開發(fā)一個項目時,我們會首先搭建好一個腳手架,然后才會開始寫代碼。搭建腳手架可以用 create-react-app、vue-cli、yeoman 等命令行...

    lykops 評論0 收藏0
  • 如何為你的 Vue 項目添加配置 Stylelint

    摘要:如何為你的項目添加配置如何為你的項目添加配置現(xiàn)在已經(jīng)是年了,網(wǎng)上許多教程和分享帖都已經(jīng)過期,照著他們的步驟來會踩一些坑,如已經(jīng)不再維護(hù),以及之后文件只剩下部分等。如有疑問或授權(quán)協(xié)商請與我聯(lián)系。如何為你的 Vue 項目添加配置 Stylelint 現(xiàn)在已經(jīng)是 9102 年了,網(wǎng)上許多教程和分享帖都已經(jīng)過期,照著他們的步驟來會踩一些坑,如 stylelint-processor-html 已經(jīng)不...

    番茄西紅柿 評論0 收藏0
  • stylelint總結(jié)

    摘要:有一百多條校驗規(guī)則這些規(guī)則可以分為三類用于校對風(fēng)格的規(guī)則用于判別代碼可維護(hù)性的規(guī)則以及用于判斷代碼錯誤的規(guī)則。所有規(guī)則默認(rèn)都是關(guān)閉的。聲明后還需要在中使用它,具體規(guī)則名稱以及可能的取值需要去查看每個插件的文檔。 stylelint有一百多條校驗規(guī)則, 這些規(guī)則可以分為三類:用于校對風(fēng)格的規(guī)則、用于判別代碼可維護(hù)性的規(guī)則、以及用于判斷代碼錯誤的規(guī)則。雖然條數(shù)眾多,但是不用怕,因為都是默認(rèn)...

    MingjunYang 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<