From 9c7d23a251a6ee02804f050ad14ec94f67a5a0d2 Mon Sep 17 00:00:00 2001 From: xingyu Date: Wed, 21 Jun 2023 11:15:30 +0800 Subject: [PATCH] chore: stylelint (cherry picked from commit a5c7c886ee9f662aaa0a7d89663639e3372dd7d3) --- package.json | 2 +- stylelint.config.js | 187 +++++--------------------------------------- 2 files changed, 22 insertions(+), 167 deletions(-) diff --git a/package.json b/package.json index 3e302246..0ed203d7 100644 --- a/package.json +++ b/package.json @@ -109,8 +109,8 @@ "rollup": "^3.25.1", "sass": "^1.63.5", "stylelint": "^15.8.0", - "stylelint-config-html": "^1.1.0", "stylelint-config-recommended": "^12.0.0", + "stylelint-config-recommended-vue": "^1.4.0", "stylelint-config-standard": "^33.0.0", "stylelint-order": "^6.0.3", "terser": "^5.18.1", diff --git a/stylelint.config.js b/stylelint.config.js index a8ba3d30..9a254fea 100644 --- a/stylelint.config.js +++ b/stylelint.config.js @@ -1,41 +1,42 @@ module.exports = { root: true, plugins: ['stylelint-order'], - customSyntax: 'postcss-html', extends: ['stylelint-config-standard'], + customSyntax: 'postcss-html', rules: { + 'function-no-unknown': null, + 'selector-class-pattern': null, 'selector-pseudo-class-no-unknown': [ true, { - ignorePseudoClasses: ['global', 'deep'] + ignorePseudoClasses: ['global'] + } + ], + 'selector-pseudo-element-no-unknown': [ + true, + { + ignorePseudoElements: ['v-deep'] } ], 'at-rule-no-unknown': [ true, { - ignoreAtRules: ['function', 'if', 'each', 'include', 'mixin'] + ignoreAtRules: ['tailwind', 'apply', 'variants', 'responsive', 'screen', 'function', 'if', 'each', 'include', 'mixin'] } ], 'no-empty-source': null, + 'import-notation': null, 'named-grid-areas-no-invalid': null, - 'unicode-bom': 'never', 'no-descending-specificity': null, 'font-family-no-missing-generic-family-keyword': null, - 'declaration-colon-space-after': 'always-single-line', - 'declaration-colon-space-before': 'never', - 'declaration-block-trailing-semicolon': null, + // 'declaration-block-trailing-semicolon': 'always', 'rule-empty-line-before': [ 'always', { ignore: ['after-comment', 'first-nested'] } ], - 'unit-no-unknown': [ - true, - { - ignoreUnits: ['rpx'] - } - ], + 'unit-no-unknown': [true, { ignoreUnits: ['rpx'] }], 'order/order': [ [ 'dollar-variables', @@ -52,165 +53,14 @@ module.exports = { }, 'rules' ], - { - severity: 'warning' - } - ], - // Specify the alphabetical order of the attributes in the declaration block - 'order/properties-order': [ - 'position', - 'top', - 'right', - 'bottom', - 'left', - 'z-index', - 'display', - 'float', - 'width', - 'height', - 'max-width', - 'max-height', - 'min-width', - 'min-height', - 'padding', - 'padding-top', - 'padding-right', - 'padding-bottom', - 'padding-left', - 'margin', - 'margin-top', - 'margin-right', - 'margin-bottom', - 'margin-left', - 'margin-collapse', - 'margin-top-collapse', - 'margin-right-collapse', - 'margin-bottom-collapse', - 'margin-left-collapse', - 'overflow', - 'overflow-x', - 'overflow-y', - 'clip', - 'clear', - 'font', - 'font-family', - 'font-size', - 'font-smoothing', - 'osx-font-smoothing', - 'font-style', - 'font-weight', - 'hyphens', - 'src', - 'line-height', - 'letter-spacing', - 'word-spacing', - 'color', - 'text-align', - 'text-decoration', - 'text-indent', - 'text-overflow', - 'text-rendering', - 'text-size-adjust', - 'text-shadow', - 'text-transform', - 'word-break', - 'word-wrap', - 'white-space', - 'vertical-align', - 'list-style', - 'list-style-type', - 'list-style-position', - 'list-style-image', - 'pointer-events', - 'cursor', - 'background', - 'background-attachment', - 'background-color', - 'background-image', - 'background-position', - 'background-repeat', - 'background-size', - 'border', - 'border-collapse', - 'border-top', - 'border-right', - 'border-bottom', - 'border-left', - 'border-color', - 'border-image', - 'border-top-color', - 'border-right-color', - 'border-bottom-color', - 'border-left-color', - 'border-spacing', - 'border-style', - 'border-top-style', - 'border-right-style', - 'border-bottom-style', - 'border-left-style', - 'border-width', - 'border-top-width', - 'border-right-width', - 'border-bottom-width', - 'border-left-width', - 'border-radius', - 'border-top-right-radius', - 'border-bottom-right-radius', - 'border-bottom-left-radius', - 'border-top-left-radius', - 'border-radius-topright', - 'border-radius-bottomright', - 'border-radius-bottomleft', - 'border-radius-topleft', - 'content', - 'quotes', - 'outline', - 'outline-offset', - 'opacity', - 'filter', - 'visibility', - 'size', - 'zoom', - 'transform', - 'box-align', - 'box-flex', - 'box-orient', - 'box-pack', - 'box-shadow', - 'box-sizing', - 'table-layout', - 'animation', - 'animation-delay', - 'animation-duration', - 'animation-iteration-count', - 'animation-name', - 'animation-play-state', - 'animation-timing-function', - 'animation-fill-mode', - 'transition', - 'transition-delay', - 'transition-duration', - 'transition-property', - 'transition-timing-function', - 'background-clip', - 'backface-visibility', - 'resize', - 'appearance', - 'user-select', - 'interpolation-mode', - 'direction', - 'marks', - 'page', - 'set-link-source', - 'unicode-bidi', - 'speak' + { severity: 'warning' } ] }, ignoreFiles: ['**/*.js', '**/*.jsx', '**/*.tsx', '**/*.ts'], overrides: [ { files: ['*.vue', '**/*.vue', '*.html', '**/*.html'], - extends: ['stylelint-config-recommended', 'stylelint-config-html'], + extends: ['stylelint-config-recommended'], rules: { 'keyframes-name-pattern': null, 'selector-pseudo-class-no-unknown': [ @@ -226,6 +76,11 @@ module.exports = { } ] } + }, + { + files: ['*.less', '**/*.less'], + customSyntax: 'postcss-less', + extends: ['stylelint-config-standard', 'stylelint-config-recommended-vue'] } ] }