@tomjs/stylelint 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -0
- package/es/index.d.ts +55 -0
- package/es/index.js +93 -0
- package/es/vue.d.ts +60 -0
- package/es/vue.js +97 -0
- package/lib/index.d.ts +55 -0
- package/lib/index.js +92 -0
- package/lib/vue.d.ts +60 -0
- package/lib/vue.js +96 -0
- package/package.json +60 -0
package/README.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# @tomjs/stylelint
|
|
2
|
+
|
|
3
|
+
前端项目 [stylelint](https://stylelint.io/) 样式规范配置。
|
|
4
|
+
|
|
5
|
+
## 使用说明
|
|
6
|
+
|
|
7
|
+
- 安装依赖
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pnpm add -D stylelint prettier @tomjs/stylelint
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
- 修改 `.stylelintrc.{js,cjs}` 配置
|
|
14
|
+
|
|
15
|
+
```js
|
|
16
|
+
module.exports = {
|
|
17
|
+
extends: [require.resolve('@tomjs/stylelint')],
|
|
18
|
+
};
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### vue
|
|
22
|
+
|
|
23
|
+
vue 项目 stylelint 配置
|
|
24
|
+
|
|
25
|
+
#### 修改配置
|
|
26
|
+
|
|
27
|
+
修改 `.stylelintrc.{js,cjs}` 配置,如
|
|
28
|
+
|
|
29
|
+
```js
|
|
30
|
+
module.exports = {
|
|
31
|
+
extends: [require.resolve('@tomjs/stylelint/vue')],
|
|
32
|
+
};
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
#### 制作配置
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
pnpm add --save-peer prettier stylelint
|
|
39
|
+
pnpm add postcss postcss-html postcss-less postcss-scss
|
|
40
|
+
pnpm add stylelint-prettier stylelint-config-standard stylelint-config-standard-scss stylelint-config-recommended-vue
|
|
41
|
+
pnpm add stylelint-order stylelint-config-property-sort-order-smacss
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
- [stylelint-prettier](https://www.npmjs.com/package/stylelint-prettier):将 Prettier 作为 stylelint 规则运行,并将差异报告为单个 stylelint 问题
|
|
45
|
+
- [stylelint-config-standard](https://www.npmjs.com/package/stylelint-config-standard):它扩展了 stylelint-config-recommended,并开启了附加规则,以执行 CSS 规范中的现代约定
|
|
46
|
+
- [stylelint-config-standard-scss](https://www.npmjs.com/package/stylelint-config-standard-scss):stylelint 的标准 scss 共享配置
|
|
47
|
+
- [stylelint-config-recommended-vue](https://www.npmjs.com/package/stylelint-config-recommended-vue):stylelint 的推荐 vue 共享配置
|
|
48
|
+
- [stylelint-order](https://www.npmjs.com/package/stylelint-order):为 stylelint 提供的与排序相关的提示规则的插件包
|
|
49
|
+
- [stylelint-config-property-sort-order-smacss](https://www.npmjs.com/package/stylelint-config-property-sort-order-smacss):基于 [SMACSS](http://smacss.com/) 方法的属性排序
|
|
50
|
+
|
|
51
|
+
## 参考项目
|
|
52
|
+
|
|
53
|
+
- [vue-vben-admin](https://github.com/vbenjs/vue-vben-admin)
|
package/es/index.d.ts
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
plugins: string[];
|
|
3
|
+
extends: string[];
|
|
4
|
+
overrides: ({
|
|
5
|
+
files: string[];
|
|
6
|
+
customSyntax: string;
|
|
7
|
+
extends: string[];
|
|
8
|
+
rule?: undefined;
|
|
9
|
+
} | {
|
|
10
|
+
files: string[];
|
|
11
|
+
customSyntax: string;
|
|
12
|
+
extends: string[];
|
|
13
|
+
rule: {
|
|
14
|
+
'scss/percent-placeholder-pattern': null;
|
|
15
|
+
};
|
|
16
|
+
})[];
|
|
17
|
+
rules: {
|
|
18
|
+
'no-duplicate-selectors': null;
|
|
19
|
+
'media-feature-range-notation': string;
|
|
20
|
+
'color-function-notation': null;
|
|
21
|
+
'alpha-value-notation': string;
|
|
22
|
+
'selector-not-notation': null;
|
|
23
|
+
'import-notation': null;
|
|
24
|
+
'function-no-unknown': null;
|
|
25
|
+
'selector-class-pattern': null;
|
|
26
|
+
'selector-pseudo-class-no-unknown': (boolean | {
|
|
27
|
+
ignorePseudoClasses: string[];
|
|
28
|
+
})[];
|
|
29
|
+
'selector-pseudo-element-no-unknown': (boolean | {
|
|
30
|
+
ignorePseudoElements: string[];
|
|
31
|
+
})[];
|
|
32
|
+
'at-rule-no-unknown': (boolean | {
|
|
33
|
+
ignoreAtRules: string[];
|
|
34
|
+
})[];
|
|
35
|
+
'no-empty-source': null;
|
|
36
|
+
'string-quotes': null;
|
|
37
|
+
'named-grid-areas-no-invalid': null;
|
|
38
|
+
'no-descending-specificity': null;
|
|
39
|
+
'font-family-no-missing-generic-family-keyword': null;
|
|
40
|
+
'rule-empty-line-before': (string | {
|
|
41
|
+
ignore: string[];
|
|
42
|
+
})[];
|
|
43
|
+
'unit-no-unknown': (boolean | {
|
|
44
|
+
ignoreUnits: string[];
|
|
45
|
+
})[];
|
|
46
|
+
'order/order': ((string | {
|
|
47
|
+
type: string;
|
|
48
|
+
name: string;
|
|
49
|
+
})[] | {
|
|
50
|
+
severity: string;
|
|
51
|
+
})[];
|
|
52
|
+
};
|
|
53
|
+
ignoreFiles: string[];
|
|
54
|
+
};
|
|
55
|
+
export default _default;
|
package/es/index.js
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
const index = {
|
|
2
|
+
plugins: ["stylelint-order", "stylelint-prettier"],
|
|
3
|
+
extends: ["stylelint-config-standard", "stylelint-config-property-sort-order-smacss"],
|
|
4
|
+
overrides: [
|
|
5
|
+
{
|
|
6
|
+
files: ["*.less", "**/*.less"],
|
|
7
|
+
customSyntax: "postcss-less",
|
|
8
|
+
extends: ["stylelint-config-standard"]
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
files: ["*.scss", "**/*.scss"],
|
|
12
|
+
customSyntax: "postcss-scss",
|
|
13
|
+
extends: ["stylelint-config-standard-scss"],
|
|
14
|
+
rule: {
|
|
15
|
+
"scss/percent-placeholder-pattern": null
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
rules: {
|
|
20
|
+
"no-duplicate-selectors": null,
|
|
21
|
+
"media-feature-range-notation": "prefix",
|
|
22
|
+
"color-function-notation": null,
|
|
23
|
+
"alpha-value-notation": "number",
|
|
24
|
+
"selector-not-notation": null,
|
|
25
|
+
"import-notation": null,
|
|
26
|
+
"function-no-unknown": null,
|
|
27
|
+
"selector-class-pattern": null,
|
|
28
|
+
"selector-pseudo-class-no-unknown": [
|
|
29
|
+
true,
|
|
30
|
+
{
|
|
31
|
+
ignorePseudoClasses: ["global", "deep"]
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"selector-pseudo-element-no-unknown": [
|
|
35
|
+
true,
|
|
36
|
+
{
|
|
37
|
+
ignorePseudoElements: ["v-deep"]
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"at-rule-no-unknown": [
|
|
41
|
+
true,
|
|
42
|
+
{
|
|
43
|
+
ignoreAtRules: [
|
|
44
|
+
"tailwind",
|
|
45
|
+
"apply",
|
|
46
|
+
"variants",
|
|
47
|
+
"responsive",
|
|
48
|
+
"screen",
|
|
49
|
+
"function",
|
|
50
|
+
"if",
|
|
51
|
+
"each",
|
|
52
|
+
"include",
|
|
53
|
+
"mixin",
|
|
54
|
+
"extend"
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"no-empty-source": null,
|
|
59
|
+
"string-quotes": null,
|
|
60
|
+
"named-grid-areas-no-invalid": null,
|
|
61
|
+
"no-descending-specificity": null,
|
|
62
|
+
"font-family-no-missing-generic-family-keyword": null,
|
|
63
|
+
"rule-empty-line-before": [
|
|
64
|
+
"always",
|
|
65
|
+
{
|
|
66
|
+
ignore: ["after-comment", "first-nested"]
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"unit-no-unknown": [true, { ignoreUnits: ["rpx"] }],
|
|
70
|
+
"order/order": [
|
|
71
|
+
[
|
|
72
|
+
"dollar-variables",
|
|
73
|
+
"custom-properties",
|
|
74
|
+
"at-rules",
|
|
75
|
+
"declarations",
|
|
76
|
+
{
|
|
77
|
+
type: "at-rule",
|
|
78
|
+
name: "supports"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: "at-rule",
|
|
82
|
+
name: "media"
|
|
83
|
+
},
|
|
84
|
+
"rules"
|
|
85
|
+
],
|
|
86
|
+
{ severity: "error" }
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
ignoreFiles: ["**/*.js", "**/*.jsx", "**/*.tsx", "**/*.ts"]
|
|
90
|
+
};
|
|
91
|
+
export {
|
|
92
|
+
index as default
|
|
93
|
+
};
|
package/es/vue.d.ts
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
plugins: string[];
|
|
3
|
+
extends: string[];
|
|
4
|
+
overrides: ({
|
|
5
|
+
files: string[];
|
|
6
|
+
customSyntax: string;
|
|
7
|
+
extends?: undefined;
|
|
8
|
+
rule?: undefined;
|
|
9
|
+
} | {
|
|
10
|
+
files: string[];
|
|
11
|
+
customSyntax: string;
|
|
12
|
+
extends: string[];
|
|
13
|
+
rule?: undefined;
|
|
14
|
+
} | {
|
|
15
|
+
files: string[];
|
|
16
|
+
customSyntax: string;
|
|
17
|
+
extends: string[];
|
|
18
|
+
rule: {
|
|
19
|
+
'scss/percent-placeholder-pattern': null;
|
|
20
|
+
};
|
|
21
|
+
})[];
|
|
22
|
+
rules: {
|
|
23
|
+
'no-duplicate-selectors': null;
|
|
24
|
+
'media-feature-range-notation': string;
|
|
25
|
+
'color-function-notation': null;
|
|
26
|
+
'alpha-value-notation': string;
|
|
27
|
+
'selector-not-notation': null;
|
|
28
|
+
'import-notation': null;
|
|
29
|
+
'function-no-unknown': null;
|
|
30
|
+
'selector-class-pattern': null;
|
|
31
|
+
'selector-pseudo-class-no-unknown': (boolean | {
|
|
32
|
+
ignorePseudoClasses: string[];
|
|
33
|
+
})[];
|
|
34
|
+
'selector-pseudo-element-no-unknown': (boolean | {
|
|
35
|
+
ignorePseudoElements: string[];
|
|
36
|
+
})[];
|
|
37
|
+
'at-rule-no-unknown': (boolean | {
|
|
38
|
+
ignoreAtRules: string[];
|
|
39
|
+
})[];
|
|
40
|
+
'no-empty-source': null;
|
|
41
|
+
'string-quotes': null;
|
|
42
|
+
'named-grid-areas-no-invalid': null;
|
|
43
|
+
'no-descending-specificity': null;
|
|
44
|
+
'font-family-no-missing-generic-family-keyword': null;
|
|
45
|
+
'rule-empty-line-before': (string | {
|
|
46
|
+
ignore: string[];
|
|
47
|
+
})[];
|
|
48
|
+
'unit-no-unknown': (boolean | {
|
|
49
|
+
ignoreUnits: string[];
|
|
50
|
+
})[];
|
|
51
|
+
'order/order': ((string | {
|
|
52
|
+
type: string;
|
|
53
|
+
name: string;
|
|
54
|
+
})[] | {
|
|
55
|
+
severity: string;
|
|
56
|
+
})[];
|
|
57
|
+
};
|
|
58
|
+
ignoreFiles: string[];
|
|
59
|
+
};
|
|
60
|
+
export default _default;
|
package/es/vue.js
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
const vue = {
|
|
2
|
+
plugins: ["stylelint-order", "stylelint-prettier"],
|
|
3
|
+
extends: ["stylelint-config-standard", "stylelint-config-property-sort-order-smacss"],
|
|
4
|
+
overrides: [
|
|
5
|
+
{
|
|
6
|
+
files: ["**/*.(css|html|vue)"],
|
|
7
|
+
customSyntax: "postcss-html"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
files: ["*.less", "**/*.less"],
|
|
11
|
+
customSyntax: "postcss-less",
|
|
12
|
+
extends: ["stylelint-config-standard", "stylelint-config-recommended-vue"]
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
files: ["*.scss", "**/*.scss"],
|
|
16
|
+
customSyntax: "postcss-scss",
|
|
17
|
+
extends: ["stylelint-config-standard-scss", "stylelint-config-recommended-vue/scss"],
|
|
18
|
+
rule: {
|
|
19
|
+
"scss/percent-placeholder-pattern": null
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
rules: {
|
|
24
|
+
"no-duplicate-selectors": null,
|
|
25
|
+
"media-feature-range-notation": "prefix",
|
|
26
|
+
"color-function-notation": null,
|
|
27
|
+
"alpha-value-notation": "number",
|
|
28
|
+
"selector-not-notation": null,
|
|
29
|
+
"import-notation": null,
|
|
30
|
+
"function-no-unknown": null,
|
|
31
|
+
"selector-class-pattern": null,
|
|
32
|
+
"selector-pseudo-class-no-unknown": [
|
|
33
|
+
true,
|
|
34
|
+
{
|
|
35
|
+
ignorePseudoClasses: ["global", "deep"]
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"selector-pseudo-element-no-unknown": [
|
|
39
|
+
true,
|
|
40
|
+
{
|
|
41
|
+
ignorePseudoElements: ["v-deep"]
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"at-rule-no-unknown": [
|
|
45
|
+
true,
|
|
46
|
+
{
|
|
47
|
+
ignoreAtRules: [
|
|
48
|
+
"tailwind",
|
|
49
|
+
"apply",
|
|
50
|
+
"variants",
|
|
51
|
+
"responsive",
|
|
52
|
+
"screen",
|
|
53
|
+
"function",
|
|
54
|
+
"if",
|
|
55
|
+
"each",
|
|
56
|
+
"include",
|
|
57
|
+
"mixin",
|
|
58
|
+
"extend"
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"no-empty-source": null,
|
|
63
|
+
"string-quotes": null,
|
|
64
|
+
"named-grid-areas-no-invalid": null,
|
|
65
|
+
"no-descending-specificity": null,
|
|
66
|
+
"font-family-no-missing-generic-family-keyword": null,
|
|
67
|
+
"rule-empty-line-before": [
|
|
68
|
+
"always",
|
|
69
|
+
{
|
|
70
|
+
ignore: ["after-comment", "first-nested"]
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
"unit-no-unknown": [true, { ignoreUnits: ["rpx"] }],
|
|
74
|
+
"order/order": [
|
|
75
|
+
[
|
|
76
|
+
"dollar-variables",
|
|
77
|
+
"custom-properties",
|
|
78
|
+
"at-rules",
|
|
79
|
+
"declarations",
|
|
80
|
+
{
|
|
81
|
+
type: "at-rule",
|
|
82
|
+
name: "supports"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: "at-rule",
|
|
86
|
+
name: "media"
|
|
87
|
+
},
|
|
88
|
+
"rules"
|
|
89
|
+
],
|
|
90
|
+
{ severity: "error" }
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
ignoreFiles: ["**/*.js", "**/*.jsx", "**/*.tsx", "**/*.ts"]
|
|
94
|
+
};
|
|
95
|
+
export {
|
|
96
|
+
vue as default
|
|
97
|
+
};
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
plugins: string[];
|
|
3
|
+
extends: string[];
|
|
4
|
+
overrides: ({
|
|
5
|
+
files: string[];
|
|
6
|
+
customSyntax: string;
|
|
7
|
+
extends: string[];
|
|
8
|
+
rule?: undefined;
|
|
9
|
+
} | {
|
|
10
|
+
files: string[];
|
|
11
|
+
customSyntax: string;
|
|
12
|
+
extends: string[];
|
|
13
|
+
rule: {
|
|
14
|
+
'scss/percent-placeholder-pattern': null;
|
|
15
|
+
};
|
|
16
|
+
})[];
|
|
17
|
+
rules: {
|
|
18
|
+
'no-duplicate-selectors': null;
|
|
19
|
+
'media-feature-range-notation': string;
|
|
20
|
+
'color-function-notation': null;
|
|
21
|
+
'alpha-value-notation': string;
|
|
22
|
+
'selector-not-notation': null;
|
|
23
|
+
'import-notation': null;
|
|
24
|
+
'function-no-unknown': null;
|
|
25
|
+
'selector-class-pattern': null;
|
|
26
|
+
'selector-pseudo-class-no-unknown': (boolean | {
|
|
27
|
+
ignorePseudoClasses: string[];
|
|
28
|
+
})[];
|
|
29
|
+
'selector-pseudo-element-no-unknown': (boolean | {
|
|
30
|
+
ignorePseudoElements: string[];
|
|
31
|
+
})[];
|
|
32
|
+
'at-rule-no-unknown': (boolean | {
|
|
33
|
+
ignoreAtRules: string[];
|
|
34
|
+
})[];
|
|
35
|
+
'no-empty-source': null;
|
|
36
|
+
'string-quotes': null;
|
|
37
|
+
'named-grid-areas-no-invalid': null;
|
|
38
|
+
'no-descending-specificity': null;
|
|
39
|
+
'font-family-no-missing-generic-family-keyword': null;
|
|
40
|
+
'rule-empty-line-before': (string | {
|
|
41
|
+
ignore: string[];
|
|
42
|
+
})[];
|
|
43
|
+
'unit-no-unknown': (boolean | {
|
|
44
|
+
ignoreUnits: string[];
|
|
45
|
+
})[];
|
|
46
|
+
'order/order': ((string | {
|
|
47
|
+
type: string;
|
|
48
|
+
name: string;
|
|
49
|
+
})[] | {
|
|
50
|
+
severity: string;
|
|
51
|
+
})[];
|
|
52
|
+
};
|
|
53
|
+
ignoreFiles: string[];
|
|
54
|
+
};
|
|
55
|
+
export default _default;
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const index = {
|
|
3
|
+
plugins: ["stylelint-order", "stylelint-prettier"],
|
|
4
|
+
extends: ["stylelint-config-standard", "stylelint-config-property-sort-order-smacss"],
|
|
5
|
+
overrides: [
|
|
6
|
+
{
|
|
7
|
+
files: ["*.less", "**/*.less"],
|
|
8
|
+
customSyntax: "postcss-less",
|
|
9
|
+
extends: ["stylelint-config-standard"]
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
files: ["*.scss", "**/*.scss"],
|
|
13
|
+
customSyntax: "postcss-scss",
|
|
14
|
+
extends: ["stylelint-config-standard-scss"],
|
|
15
|
+
rule: {
|
|
16
|
+
"scss/percent-placeholder-pattern": null
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
rules: {
|
|
21
|
+
"no-duplicate-selectors": null,
|
|
22
|
+
"media-feature-range-notation": "prefix",
|
|
23
|
+
"color-function-notation": null,
|
|
24
|
+
"alpha-value-notation": "number",
|
|
25
|
+
"selector-not-notation": null,
|
|
26
|
+
"import-notation": null,
|
|
27
|
+
"function-no-unknown": null,
|
|
28
|
+
"selector-class-pattern": null,
|
|
29
|
+
"selector-pseudo-class-no-unknown": [
|
|
30
|
+
true,
|
|
31
|
+
{
|
|
32
|
+
ignorePseudoClasses: ["global", "deep"]
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"selector-pseudo-element-no-unknown": [
|
|
36
|
+
true,
|
|
37
|
+
{
|
|
38
|
+
ignorePseudoElements: ["v-deep"]
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"at-rule-no-unknown": [
|
|
42
|
+
true,
|
|
43
|
+
{
|
|
44
|
+
ignoreAtRules: [
|
|
45
|
+
"tailwind",
|
|
46
|
+
"apply",
|
|
47
|
+
"variants",
|
|
48
|
+
"responsive",
|
|
49
|
+
"screen",
|
|
50
|
+
"function",
|
|
51
|
+
"if",
|
|
52
|
+
"each",
|
|
53
|
+
"include",
|
|
54
|
+
"mixin",
|
|
55
|
+
"extend"
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
"no-empty-source": null,
|
|
60
|
+
"string-quotes": null,
|
|
61
|
+
"named-grid-areas-no-invalid": null,
|
|
62
|
+
"no-descending-specificity": null,
|
|
63
|
+
"font-family-no-missing-generic-family-keyword": null,
|
|
64
|
+
"rule-empty-line-before": [
|
|
65
|
+
"always",
|
|
66
|
+
{
|
|
67
|
+
ignore: ["after-comment", "first-nested"]
|
|
68
|
+
}
|
|
69
|
+
],
|
|
70
|
+
"unit-no-unknown": [true, { ignoreUnits: ["rpx"] }],
|
|
71
|
+
"order/order": [
|
|
72
|
+
[
|
|
73
|
+
"dollar-variables",
|
|
74
|
+
"custom-properties",
|
|
75
|
+
"at-rules",
|
|
76
|
+
"declarations",
|
|
77
|
+
{
|
|
78
|
+
type: "at-rule",
|
|
79
|
+
name: "supports"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
type: "at-rule",
|
|
83
|
+
name: "media"
|
|
84
|
+
},
|
|
85
|
+
"rules"
|
|
86
|
+
],
|
|
87
|
+
{ severity: "error" }
|
|
88
|
+
]
|
|
89
|
+
},
|
|
90
|
+
ignoreFiles: ["**/*.js", "**/*.jsx", "**/*.tsx", "**/*.ts"]
|
|
91
|
+
};
|
|
92
|
+
module.exports = index;
|
package/lib/vue.d.ts
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
plugins: string[];
|
|
3
|
+
extends: string[];
|
|
4
|
+
overrides: ({
|
|
5
|
+
files: string[];
|
|
6
|
+
customSyntax: string;
|
|
7
|
+
extends?: undefined;
|
|
8
|
+
rule?: undefined;
|
|
9
|
+
} | {
|
|
10
|
+
files: string[];
|
|
11
|
+
customSyntax: string;
|
|
12
|
+
extends: string[];
|
|
13
|
+
rule?: undefined;
|
|
14
|
+
} | {
|
|
15
|
+
files: string[];
|
|
16
|
+
customSyntax: string;
|
|
17
|
+
extends: string[];
|
|
18
|
+
rule: {
|
|
19
|
+
'scss/percent-placeholder-pattern': null;
|
|
20
|
+
};
|
|
21
|
+
})[];
|
|
22
|
+
rules: {
|
|
23
|
+
'no-duplicate-selectors': null;
|
|
24
|
+
'media-feature-range-notation': string;
|
|
25
|
+
'color-function-notation': null;
|
|
26
|
+
'alpha-value-notation': string;
|
|
27
|
+
'selector-not-notation': null;
|
|
28
|
+
'import-notation': null;
|
|
29
|
+
'function-no-unknown': null;
|
|
30
|
+
'selector-class-pattern': null;
|
|
31
|
+
'selector-pseudo-class-no-unknown': (boolean | {
|
|
32
|
+
ignorePseudoClasses: string[];
|
|
33
|
+
})[];
|
|
34
|
+
'selector-pseudo-element-no-unknown': (boolean | {
|
|
35
|
+
ignorePseudoElements: string[];
|
|
36
|
+
})[];
|
|
37
|
+
'at-rule-no-unknown': (boolean | {
|
|
38
|
+
ignoreAtRules: string[];
|
|
39
|
+
})[];
|
|
40
|
+
'no-empty-source': null;
|
|
41
|
+
'string-quotes': null;
|
|
42
|
+
'named-grid-areas-no-invalid': null;
|
|
43
|
+
'no-descending-specificity': null;
|
|
44
|
+
'font-family-no-missing-generic-family-keyword': null;
|
|
45
|
+
'rule-empty-line-before': (string | {
|
|
46
|
+
ignore: string[];
|
|
47
|
+
})[];
|
|
48
|
+
'unit-no-unknown': (boolean | {
|
|
49
|
+
ignoreUnits: string[];
|
|
50
|
+
})[];
|
|
51
|
+
'order/order': ((string | {
|
|
52
|
+
type: string;
|
|
53
|
+
name: string;
|
|
54
|
+
})[] | {
|
|
55
|
+
severity: string;
|
|
56
|
+
})[];
|
|
57
|
+
};
|
|
58
|
+
ignoreFiles: string[];
|
|
59
|
+
};
|
|
60
|
+
export default _default;
|
package/lib/vue.js
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const vue = {
|
|
3
|
+
plugins: ["stylelint-order", "stylelint-prettier"],
|
|
4
|
+
extends: ["stylelint-config-standard", "stylelint-config-property-sort-order-smacss"],
|
|
5
|
+
overrides: [
|
|
6
|
+
{
|
|
7
|
+
files: ["**/*.(css|html|vue)"],
|
|
8
|
+
customSyntax: "postcss-html"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
files: ["*.less", "**/*.less"],
|
|
12
|
+
customSyntax: "postcss-less",
|
|
13
|
+
extends: ["stylelint-config-standard", "stylelint-config-recommended-vue"]
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
files: ["*.scss", "**/*.scss"],
|
|
17
|
+
customSyntax: "postcss-scss",
|
|
18
|
+
extends: ["stylelint-config-standard-scss", "stylelint-config-recommended-vue/scss"],
|
|
19
|
+
rule: {
|
|
20
|
+
"scss/percent-placeholder-pattern": null
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
rules: {
|
|
25
|
+
"no-duplicate-selectors": null,
|
|
26
|
+
"media-feature-range-notation": "prefix",
|
|
27
|
+
"color-function-notation": null,
|
|
28
|
+
"alpha-value-notation": "number",
|
|
29
|
+
"selector-not-notation": null,
|
|
30
|
+
"import-notation": null,
|
|
31
|
+
"function-no-unknown": null,
|
|
32
|
+
"selector-class-pattern": null,
|
|
33
|
+
"selector-pseudo-class-no-unknown": [
|
|
34
|
+
true,
|
|
35
|
+
{
|
|
36
|
+
ignorePseudoClasses: ["global", "deep"]
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"selector-pseudo-element-no-unknown": [
|
|
40
|
+
true,
|
|
41
|
+
{
|
|
42
|
+
ignorePseudoElements: ["v-deep"]
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"at-rule-no-unknown": [
|
|
46
|
+
true,
|
|
47
|
+
{
|
|
48
|
+
ignoreAtRules: [
|
|
49
|
+
"tailwind",
|
|
50
|
+
"apply",
|
|
51
|
+
"variants",
|
|
52
|
+
"responsive",
|
|
53
|
+
"screen",
|
|
54
|
+
"function",
|
|
55
|
+
"if",
|
|
56
|
+
"each",
|
|
57
|
+
"include",
|
|
58
|
+
"mixin",
|
|
59
|
+
"extend"
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"no-empty-source": null,
|
|
64
|
+
"string-quotes": null,
|
|
65
|
+
"named-grid-areas-no-invalid": null,
|
|
66
|
+
"no-descending-specificity": null,
|
|
67
|
+
"font-family-no-missing-generic-family-keyword": null,
|
|
68
|
+
"rule-empty-line-before": [
|
|
69
|
+
"always",
|
|
70
|
+
{
|
|
71
|
+
ignore: ["after-comment", "first-nested"]
|
|
72
|
+
}
|
|
73
|
+
],
|
|
74
|
+
"unit-no-unknown": [true, { ignoreUnits: ["rpx"] }],
|
|
75
|
+
"order/order": [
|
|
76
|
+
[
|
|
77
|
+
"dollar-variables",
|
|
78
|
+
"custom-properties",
|
|
79
|
+
"at-rules",
|
|
80
|
+
"declarations",
|
|
81
|
+
{
|
|
82
|
+
type: "at-rule",
|
|
83
|
+
name: "supports"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
type: "at-rule",
|
|
87
|
+
name: "media"
|
|
88
|
+
},
|
|
89
|
+
"rules"
|
|
90
|
+
],
|
|
91
|
+
{ severity: "error" }
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
ignoreFiles: ["**/*.js", "**/*.jsx", "**/*.tsx", "**/*.ts"]
|
|
95
|
+
};
|
|
96
|
+
module.exports = vue;
|
package/package.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@tomjs/stylelint",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "stylelint config for tomjs",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"lint",
|
|
7
|
+
"stylelint",
|
|
8
|
+
"style",
|
|
9
|
+
"css",
|
|
10
|
+
"less",
|
|
11
|
+
"scss"
|
|
12
|
+
],
|
|
13
|
+
"author": {
|
|
14
|
+
"name": "tom",
|
|
15
|
+
"email": "tom@tomgao.cc"
|
|
16
|
+
},
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"files": [
|
|
19
|
+
"es",
|
|
20
|
+
"lib",
|
|
21
|
+
"*.md"
|
|
22
|
+
],
|
|
23
|
+
"main": "./lib/index.js",
|
|
24
|
+
"module": "./es/index.js",
|
|
25
|
+
"exports": {
|
|
26
|
+
".": {
|
|
27
|
+
"require": "./lib/index.js",
|
|
28
|
+
"import": "./es/index.js",
|
|
29
|
+
"types": "./es/index.d.ts"
|
|
30
|
+
},
|
|
31
|
+
"./vue": {
|
|
32
|
+
"require": "./lib/vue.js",
|
|
33
|
+
"import": "./es/vue.js",
|
|
34
|
+
"types": "./es/vue.d.ts"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"postcss": "^8.4.29",
|
|
39
|
+
"postcss-html": "^1.5.0",
|
|
40
|
+
"postcss-less": "^6.0.0",
|
|
41
|
+
"postcss-scss": "^4.0.8",
|
|
42
|
+
"stylelint-config-property-sort-order-smacss": "^9.1.0",
|
|
43
|
+
"stylelint-config-recommended-vue": "^1.5.0",
|
|
44
|
+
"stylelint-config-standard": "^34.0.0",
|
|
45
|
+
"stylelint-config-standard-scss": "^11.0.0",
|
|
46
|
+
"stylelint-order": "^6.0.3",
|
|
47
|
+
"stylelint-prettier": "^4.0.2"
|
|
48
|
+
},
|
|
49
|
+
"peerDependencies": {
|
|
50
|
+
"prettier": ">=3.0.0",
|
|
51
|
+
"stylelint": "^15.10.0"
|
|
52
|
+
},
|
|
53
|
+
"engines": {
|
|
54
|
+
"node": ">=16"
|
|
55
|
+
},
|
|
56
|
+
"scripts": {
|
|
57
|
+
"build": "npm run clean && vite build",
|
|
58
|
+
"clean": "rimraf ./es ./lib"
|
|
59
|
+
}
|
|
60
|
+
}
|