主题
stylelint.config.js
js
export default {
plugins: ['stylelint-order', 'stylelint-less', 'stylelint-prettier'],
extends: [
'stylelint-config-standard', // the standard shareable config for Stylelint
'stylelint-config-html/html', // the shareable html config for Stylelint.
'stylelint-config-html/vue', // the shareable vue config for Stylelint.
'stylelint-config-recess-order', // use the clean order for properties
],
rules: {
'prettier/prettier': true,
// 禁止在覆盖高特异性选择器之后出现低特异性选择器
'no-descending-specificity': null,
// 禁止空源码
'no-empty-source': null,
// 禁止字体族中缺少泛型族关键字
'font-family-no-missing-generic-family-keyword': null,
// 禁止未知的@规则
'at-rule-no-unknown': [
true,
{
ignoreAtRules: [
'tailwind',
'apply',
'variants',
'responsive',
'screen',
'function',
'if',
'each',
'include',
'mixin',
'extend',
'content',
'use',
],
},
],
// 不允许未知函数
'function-no-unknown': null,
// 不允许未知单位
'unit-no-unknown': [true, { ignoreUnits: ['rpx'] }],
// 不允许选择器使用供应商前缀
'selector-no-vendor-prefix': null,
// 指定类选择器的模式
'selector-class-pattern': null,
// 不允许值使用供应商前缀
'value-no-vendor-prefix': null,
// 要求或禁止在规则之前的空行
'rule-empty-line-before': ['always', { ignore: ['after-comment', 'first-nested'] }],
},
ignoreFiles: ['**/*.js', '**/*.jsx', '**/*.tsx', '**/*.ts', '**/*.vue'],
overrides: [
{
files: ['**/*.vue'],
customSyntax: 'postcss-html',
rules: {
// 禁止未知的伪类选择器
'selector-pseudo-class-no-unknown': [true, { ignorePseudoClasses: ['deep', 'global'] }],
// 禁止未知的伪元素选择器
'selector-pseudo-element-no-unknown': [true, { ignorePseudoElements: ['v-deep', 'v-global', 'v-slotted'] }],
// 禁用所有可能引起问题的规则
'at-rule-no-unknown': null,
'function-no-unknown': null,
'unit-no-unknown': null,
'property-no-unknown': null,
'selector-type-no-unknown': null,
'no-unknown': null,
'no-empty-source': null,
'block-no-empty': null,
'comment-no-empty': null,
'rule-empty-line-before': null,
'declaration-no-important': null,
'declaration-block-no-duplicate-properties': null,
'declaration-block-no-shorthand-property-overrides': null,
'declaration-block-trailing-semicolon': null,
'declaration-colon-space-after': null,
'declaration-colon-space-before': null,
'declaration-empty-line-before': null,
'length-zero-no-unit': null,
'max-empty-lines': null,
'no-duplicate-at-import-rules': null,
'no-duplicate-selectors': null,
'no-extra-semicolons': null,
'no-missing-end-of-source-newline': null,
'number-leading-zero': null,
'number-no-trailing-zeros': null,
'string-no-newline': null,
'value-list-comma-newline-after': null,
'value-list-comma-space-after': null,
'value-list-comma-space-before': null,
'value-list-max-empty-lines': null,
'color-no-invalid-hex': null,
'font-family-no-duplicate-names': null,
'font-family-no-missing-generic-family-keyword': null,
'function-calc-no-unspaced-operator': null,
'function-linear-gradient-no-nonstandard-direction': null,
'keyframe-declaration-no-important': null,
'media-feature-name-no-unknown': null,
'no-invalid-double-slash-comments': null,
'selector-attribute-brackets-space-inside': null,
'selector-attribute-operator-space-after': null,
'selector-attribute-operator-space-before': null,
'selector-attribute-quotes': null,
'selector-combinator-space-after': null,
'selector-combinator-space-before': null,
'selector-descendant-combinator-no-non-space': null,
'selector-max-id': null,
'selector-max-universal': null,
'selector-no-qualifying-type': null,
'selector-no-vendor-prefix': null,
'selector-pseudo-class-case': null,
'selector-pseudo-class-parentheses-space-inside': null,
'selector-pseudo-element-case': null,
'selector-pseudo-element-colon-notation': null,
'selector-type-case': null,
'shorthand-property-no-redundant-values': null,
'string-quotes': null,
'unit-case': null,
'value-keyword-case': null,
'value-no-vendor-prefix': null,
},
},
{
files: ['**/*.(css|html)'],
customSyntax: 'postcss-html',
rules: {
// 禁止未知的伪类选择器
'selector-pseudo-class-no-unknown': [true, { ignorePseudoClasses: ['deep', 'global'] }],
// 禁止未知的伪元素选择器
'selector-pseudo-element-no-unknown': [true, { ignorePseudoElements: ['v-deep', 'v-global', 'v-slotted'] }],
},
},
{
files: ['*.sass', '**/*.sass'],
customSyntax: 'postcss-sass',
extends: ['stylelint-config-standard-sass'],
},
],
};
