92 lines
2.2 KiB
JavaScript
92 lines
2.2 KiB
JavaScript
export default {
|
|
// 继承规则
|
|
extends: [
|
|
'stylelint-config-standard-scss',
|
|
'stylelint-config-standard-vue/scss',
|
|
'stylelint-config-recess-order',
|
|
],
|
|
// 忽略文件
|
|
ignoreFiles: [
|
|
'dist/**',
|
|
'src/uni_modules/**',
|
|
'node_modules/**',
|
|
],
|
|
rules: {
|
|
// --- 基础规则优化 ---
|
|
'no-empty-source': null,
|
|
'no-descending-specificity': null,
|
|
'comment-no-empty': true,
|
|
'comment-empty-line-before': null,
|
|
'color-hex-length': null,
|
|
'import-notation': 'string',
|
|
|
|
// --- UniApp & 小程序适配 ---
|
|
// 允许 rpx 单位
|
|
'unit-no-unknown': [true, {
|
|
ignoreUnits: ['rpx'],
|
|
}],
|
|
// 允许小程序特有标签
|
|
'selector-type-no-unknown': [true, {
|
|
ignoreTypes: [
|
|
'page',
|
|
'view',
|
|
'text',
|
|
'image',
|
|
'scroll-view',
|
|
'swiper',
|
|
'swiper-item',
|
|
'navigator',
|
|
'button',
|
|
'radio',
|
|
'checkbox',
|
|
'label',
|
|
'form',
|
|
'picker',
|
|
'picker-view',
|
|
],
|
|
}],
|
|
|
|
// --- UnoCSS 兼容 (关键) ---
|
|
'scss/at-rule-no-unknown': [true, {
|
|
ignoreAtRules: [
|
|
'apply',
|
|
'variants',
|
|
'responsive',
|
|
'screen',
|
|
'unocss',
|
|
'theme',
|
|
],
|
|
}],
|
|
'function-no-unknown': [true, {
|
|
ignoreFunctions: ['theme', 'v-bind'],
|
|
}],
|
|
|
|
// --- Vue3 深度选择器适配 ---
|
|
'selector-pseudo-element-no-unknown': [true, {
|
|
ignorePseudoElements: ['v-deep', 'v-global', 'v-slotted'],
|
|
}],
|
|
'selector-pseudo-class-no-unknown': [true, {
|
|
ignorePseudoClasses: ['deep', 'global'],
|
|
}],
|
|
|
|
// --- 声明值校验优化 (针对 v-bind 和 rpx) ---
|
|
'declaration-property-value-no-unknown': [true, {
|
|
ignoreProperties: {
|
|
'/.+/': [
|
|
/v-bind\(.+\)/,
|
|
/(\d+(\.\d+)?rpx)/,
|
|
],
|
|
},
|
|
}],
|
|
|
|
// --- SCSS 规则微调 (配合 @antfu 风格) ---
|
|
'scss/load-partial-extension': null,
|
|
'scss/double-slash-comment-empty-line-before': null,
|
|
'scss/double-slash-comment-whitespace-inside': null,
|
|
'scss/at-import-partial-extension': null, // 允许不写下划线和后缀
|
|
|
|
// 禁用标准 CSS 中不支持 SCSS 函数的报错
|
|
'at-rule-no-deprecated': null,
|
|
},
|
|
};
|