CSS 코드 검사 도구 stylelint 의 사용 방법 에 대한 상세 한 설명

CSS 는 엄격 한 의미 의 프로 그래 밍 언어 라 고 할 수 는 없 지만 전단 체계 에 서 는 무시 할 수 없다.CSS 는 설명 위주 의 스타일 시트 로 혼 란 스 럽 고 규칙 이 없 으 면 다른 개발 자 에 게 시한폭탄,특히 강박 증 이 있 는 사람들 이 어야 한다.CSS 는 간단 해 보이 지만 예 쁜 CSS 를 쓰 는 것 은 상당히 어렵다.그래서 CSS 규칙 검증 이 시 급 합 니 다.stylelint 는 강력 한 현대 CSS 감지 기 로 개발 자 들 이 스타일 시트 에서 일치 하 는 약속 을 지 키 고 오 류 를 피 할 수 있 습 니 다.본 고 는 CSS 코드 검사 도구 stylelint 를 상세 하 게 소개 할 것 이다.

개술
stylelint 는 150 개가 넘 는 규칙 을 가지 고 있 으 며 오류 포착,최 적 실천,사용 가능 한 언어 특성 제어 와 강제 코드 스타일 규범 을 포함한다.최신 CSS 문법 을 지원 하 며 유연 하 게 설정 할 수 있 습 니 다.
Vue
다음은 Vue 프레임 에 stylelint 를 설치 합 니 다.
1.stylelint,stylent-config-standard 와 stylelint-order 를 설치 합 니 다.

npm install stylelint --save-dev
npm install stylelint-config-standard --save-dev
npm install stylelint-order --save-dev
그 중에서 스타일 린 트 는 실행 도구 이 고 스타일 린 트-config-standard 는 스타일 린 트 의 추천 설정 이 며 스타일 린 트-order 는 CSS 속성 정렬 플러그 인 입 니 다.
설치 가 완료 되면 package.json 파일 에 다음 필드 가 자동 으로 추 가 됩 니 다.

"stylelint": "^9.1.3",
"stylelint-config-standard": "^18.2.0",
"stylelint-order": "^0.8.1",
2.루트 디 렉 터 리 에.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 [email protected]
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 버 전 으로 업 데 이 트 된 후 styled-components 의 CSS 코드 를 정상적으로 검사 할 수 없 기 때문에 9.1.3 버 전 을 사용 합 니 다.

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 여 개의 규칙 에서 fix 명령 을 사용 하면 일부 명령 을 자동 으로 복구 할 수 있 습 니 다.그러나 이 fix 명령 은 반드시 신중하게 사용 해 야 한다.필 자 는 fix 명령 을 사용 한 후 stylelint 는 React 프로젝트 의 모든 js 파일 의 코드 를 모두 제거 하고 다음 에 식별 할 수 있 는 css 부분 만 남 겨 두 었 습 니 다.

stylelint '**/*.js' --fix
2.스 크 립 트 설정
package.json 에서 stylelint 의 단축 키 를 설정 할 수 있 습 니 다.

"scripts": {
"lintcss": "stylelint 'src/**/*.js'"
}
이렇게 하면 npm run lintcss 명령 을 사용 하면 같은 효 과 를 얻 을 수 있 습 니 다.
3.다음 과 같은 오류 가 발생 하면

Error: No configuration provided for
루트 경로 에서.stylelintrc 와 같은 설정 파일 을 발견 하지 못 했 기 때 문 입 니 다.
CSS 코드 검사 도구 stylelint 의 사용 방법 에 대해 서 는 아래 링크 를 보십시오.

좋은 웹페이지 즐겨찾기