eslint-plugin-stylelint-2 1.0.9
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/CHANGELOG.md +329 -0
- package/LICENSE +21 -0
- package/README.md +174 -0
- package/dist/_internal/rule-docs-url.d.ts +15 -0
- package/dist/_internal/rule-docs-url.d.ts.map +1 -0
- package/dist/_internal/rule-docs-url.js +15 -0
- package/dist/_internal/rule-docs-url.js.map +1 -0
- package/dist/_internal/rules-registry.d.ts +88 -0
- package/dist/_internal/rules-registry.d.ts.map +1 -0
- package/dist/_internal/rules-registry.js +85 -0
- package/dist/_internal/rules-registry.js.map +1 -0
- package/dist/_internal/stylelint-config-boolean-option-rule.d.ts +17 -0
- package/dist/_internal/stylelint-config-boolean-option-rule.d.ts.map +1 -0
- package/dist/_internal/stylelint-config-boolean-option-rule.js +90 -0
- package/dist/_internal/stylelint-config-boolean-option-rule.js.map +1 -0
- package/dist/_internal/stylelint-config-disallowed-option-rule.d.ts +16 -0
- package/dist/_internal/stylelint-config-disallowed-option-rule.d.ts.map +1 -0
- package/dist/_internal/stylelint-config-disallowed-option-rule.js +48 -0
- package/dist/_internal/stylelint-config-disallowed-option-rule.js.map +1 -0
- package/dist/_internal/stylelint-config-object.d.ts +62 -0
- package/dist/_internal/stylelint-config-object.d.ts.map +1 -0
- package/dist/_internal/stylelint-config-object.js +114 -0
- package/dist/_internal/stylelint-config-object.js.map +1 -0
- package/dist/_internal/stylelint-config-package-option-rule.d.ts +12 -0
- package/dist/_internal/stylelint-config-package-option-rule.d.ts.map +1 -0
- package/dist/_internal/stylelint-config-package-option-rule.js +66 -0
- package/dist/_internal/stylelint-config-package-option-rule.js.map +1 -0
- package/dist/_internal/stylelint-config-rules-object.d.ts +23 -0
- package/dist/_internal/stylelint-config-rules-object.d.ts.map +1 -0
- package/dist/_internal/stylelint-config-rules-object.js +47 -0
- package/dist/_internal/stylelint-config-rules-object.js.map +1 -0
- package/dist/_internal/stylelint-config-string-array-option-rule.d.ts +27 -0
- package/dist/_internal/stylelint-config-string-array-option-rule.d.ts.map +1 -0
- package/dist/_internal/stylelint-config-string-array-option-rule.js +234 -0
- package/dist/_internal/stylelint-config-string-array-option-rule.js.map +1 -0
- package/dist/_internal/stylelint-config-string-array-option.d.ts +32 -0
- package/dist/_internal/stylelint-config-string-array-option.d.ts.map +1 -0
- package/dist/_internal/stylelint-config-string-array-option.js +55 -0
- package/dist/_internal/stylelint-config-string-array-option.js.map +1 -0
- package/dist/_internal/stylelint-package-dependencies.d.ts +18 -0
- package/dist/_internal/stylelint-package-dependencies.d.ts.map +1 -0
- package/dist/_internal/stylelint-package-dependencies.js +107 -0
- package/dist/_internal/stylelint-package-dependencies.js.map +1 -0
- package/dist/_internal/stylelint-runner.d.ts +4 -0
- package/dist/_internal/stylelint-runner.d.ts.map +1 -0
- package/dist/_internal/stylelint-runner.js +93 -0
- package/dist/_internal/stylelint-runner.js.map +1 -0
- package/dist/_internal/stylelint-worker-types.d.ts +70 -0
- package/dist/_internal/stylelint-worker-types.d.ts.map +1 -0
- package/dist/_internal/stylelint-worker-types.js +2 -0
- package/dist/_internal/stylelint-worker-types.js.map +1 -0
- package/dist/_internal/stylelint-worker.d.ts +2 -0
- package/dist/_internal/stylelint-worker.d.ts.map +1 -0
- package/dist/_internal/stylelint-worker.js +113 -0
- package/dist/_internal/stylelint-worker.js.map +1 -0
- package/dist/_internal/stylelint2-config-references.d.ts +32 -0
- package/dist/_internal/stylelint2-config-references.d.ts.map +1 -0
- package/dist/_internal/stylelint2-config-references.js +65 -0
- package/dist/_internal/stylelint2-config-references.js.map +1 -0
- package/dist/_internal/typed-rule.d.ts +42 -0
- package/dist/_internal/typed-rule.d.ts.map +1 -0
- package/dist/_internal/typed-rule.js +53 -0
- package/dist/_internal/typed-rule.js.map +1 -0
- package/dist/plugin.cjs +1 -0
- package/dist/plugin.d.cts +10 -0
- package/dist/plugin.d.ts +36 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +183 -0
- package/dist/plugin.js.map +1 -0
- package/dist/rules/disallow-stylelint-allow-empty-input.d.ts +9 -0
- package/dist/rules/disallow-stylelint-allow-empty-input.d.ts.map +1 -0
- package/dist/rules/disallow-stylelint-allow-empty-input.js +29 -0
- package/dist/rules/disallow-stylelint-allow-empty-input.js.map +1 -0
- package/dist/rules/disallow-stylelint-configuration-comment.d.ts +9 -0
- package/dist/rules/disallow-stylelint-configuration-comment.d.ts.map +1 -0
- package/dist/rules/disallow-stylelint-configuration-comment.js +29 -0
- package/dist/rules/disallow-stylelint-configuration-comment.js.map +1 -0
- package/dist/rules/disallow-stylelint-custom-syntax.d.ts +12 -0
- package/dist/rules/disallow-stylelint-custom-syntax.d.ts.map +1 -0
- package/dist/rules/disallow-stylelint-custom-syntax.js +32 -0
- package/dist/rules/disallow-stylelint-custom-syntax.js.map +1 -0
- package/dist/rules/disallow-stylelint-default-severity.d.ts +9 -0
- package/dist/rules/disallow-stylelint-default-severity.d.ts.map +1 -0
- package/dist/rules/disallow-stylelint-default-severity.js +28 -0
- package/dist/rules/disallow-stylelint-default-severity.js.map +1 -0
- package/dist/rules/disallow-stylelint-duplicate-extends.d.ts +9 -0
- package/dist/rules/disallow-stylelint-duplicate-extends.d.ts.map +1 -0
- package/dist/rules/disallow-stylelint-duplicate-extends.js +29 -0
- package/dist/rules/disallow-stylelint-duplicate-extends.js.map +1 -0
- package/dist/rules/disallow-stylelint-duplicate-plugins.d.ts +9 -0
- package/dist/rules/disallow-stylelint-duplicate-plugins.d.ts.map +1 -0
- package/dist/rules/disallow-stylelint-duplicate-plugins.js +29 -0
- package/dist/rules/disallow-stylelint-duplicate-plugins.js.map +1 -0
- package/dist/rules/disallow-stylelint-duplicate-rule-option-values.d.ts +10 -0
- package/dist/rules/disallow-stylelint-duplicate-rule-option-values.d.ts.map +1 -0
- package/dist/rules/disallow-stylelint-duplicate-rule-option-values.js +171 -0
- package/dist/rules/disallow-stylelint-duplicate-rule-option-values.js.map +1 -0
- package/dist/rules/disallow-stylelint-empty-rules-object.d.ts +7 -0
- package/dist/rules/disallow-stylelint-empty-rules-object.d.ts.map +1 -0
- package/dist/rules/disallow-stylelint-empty-rules-object.js +65 -0
- package/dist/rules/disallow-stylelint-empty-rules-object.js.map +1 -0
- package/dist/rules/disallow-stylelint-ignore-disables.d.ts +9 -0
- package/dist/rules/disallow-stylelint-ignore-disables.d.ts.map +1 -0
- package/dist/rules/disallow-stylelint-ignore-disables.js +28 -0
- package/dist/rules/disallow-stylelint-ignore-disables.js.map +1 -0
- package/dist/rules/disallow-stylelint-ignore-files.d.ts +9 -0
- package/dist/rules/disallow-stylelint-ignore-files.d.ts.map +1 -0
- package/dist/rules/disallow-stylelint-ignore-files.js +28 -0
- package/dist/rules/disallow-stylelint-ignore-files.js.map +1 -0
- package/dist/rules/disallow-stylelint-null-rule-config.d.ts +7 -0
- package/dist/rules/disallow-stylelint-null-rule-config.d.ts.map +1 -0
- package/dist/rules/disallow-stylelint-null-rule-config.js +86 -0
- package/dist/rules/disallow-stylelint-null-rule-config.js.map +1 -0
- package/dist/rules/disallow-stylelint-overrides-runtime-options.d.ts +7 -0
- package/dist/rules/disallow-stylelint-overrides-runtime-options.d.ts.map +1 -0
- package/dist/rules/disallow-stylelint-overrides-runtime-options.js +124 -0
- package/dist/rules/disallow-stylelint-overrides-runtime-options.js.map +1 -0
- package/dist/rules/disallow-stylelint-processors.d.ts +9 -0
- package/dist/rules/disallow-stylelint-processors.d.ts.map +1 -0
- package/dist/rules/disallow-stylelint-processors.js +29 -0
- package/dist/rules/disallow-stylelint-processors.js.map +1 -0
- package/dist/rules/disallow-stylelint-relative-extends-paths.d.ts +9 -0
- package/dist/rules/disallow-stylelint-relative-extends-paths.d.ts.map +1 -0
- package/dist/rules/disallow-stylelint-relative-extends-paths.js +28 -0
- package/dist/rules/disallow-stylelint-relative-extends-paths.js.map +1 -0
- package/dist/rules/disallow-stylelint-relative-plugin-paths.d.ts +9 -0
- package/dist/rules/disallow-stylelint-relative-plugin-paths.d.ts.map +1 -0
- package/dist/rules/disallow-stylelint-relative-plugin-paths.js +28 -0
- package/dist/rules/disallow-stylelint-relative-plugin-paths.js.map +1 -0
- package/dist/rules/prefer-stylelint-cache.d.ts +9 -0
- package/dist/rules/prefer-stylelint-cache.d.ts.map +1 -0
- package/dist/rules/prefer-stylelint-cache.js +28 -0
- package/dist/rules/prefer-stylelint-cache.js.map +1 -0
- package/dist/rules/prefer-stylelint-define-config.d.ts +7 -0
- package/dist/rules/prefer-stylelint-define-config.d.ts.map +1 -0
- package/dist/rules/prefer-stylelint-define-config.js +82 -0
- package/dist/rules/prefer-stylelint-define-config.js.map +1 -0
- package/dist/rules/prefer-stylelint-extends-array.d.ts +9 -0
- package/dist/rules/prefer-stylelint-extends-array.d.ts.map +1 -0
- package/dist/rules/prefer-stylelint-extends-array.js +29 -0
- package/dist/rules/prefer-stylelint-extends-array.js.map +1 -0
- package/dist/rules/prefer-stylelint-fix.d.ts +7 -0
- package/dist/rules/prefer-stylelint-fix.d.ts.map +1 -0
- package/dist/rules/prefer-stylelint-fix.js +90 -0
- package/dist/rules/prefer-stylelint-fix.js.map +1 -0
- package/dist/rules/prefer-stylelint-formatter.d.ts +10 -0
- package/dist/rules/prefer-stylelint-formatter.d.ts.map +1 -0
- package/dist/rules/prefer-stylelint-formatter.js +77 -0
- package/dist/rules/prefer-stylelint-formatter.js.map +1 -0
- package/dist/rules/prefer-stylelint-plugins-array.d.ts +9 -0
- package/dist/rules/prefer-stylelint-plugins-array.d.ts.map +1 -0
- package/dist/rules/prefer-stylelint-plugins-array.js +29 -0
- package/dist/rules/prefer-stylelint-plugins-array.js.map +1 -0
- package/dist/rules/prefer-stylelint-report-descriptionless-disables.d.ts +12 -0
- package/dist/rules/prefer-stylelint-report-descriptionless-disables.d.ts.map +1 -0
- package/dist/rules/prefer-stylelint-report-descriptionless-disables.js +32 -0
- package/dist/rules/prefer-stylelint-report-descriptionless-disables.js.map +1 -0
- package/dist/rules/prefer-stylelint-report-invalid-scope-disables.d.ts +12 -0
- package/dist/rules/prefer-stylelint-report-invalid-scope-disables.d.ts.map +1 -0
- package/dist/rules/prefer-stylelint-report-invalid-scope-disables.js +32 -0
- package/dist/rules/prefer-stylelint-report-invalid-scope-disables.js.map +1 -0
- package/dist/rules/prefer-stylelint-report-needless-disables.d.ts +9 -0
- package/dist/rules/prefer-stylelint-report-needless-disables.d.ts.map +1 -0
- package/dist/rules/prefer-stylelint-report-needless-disables.js +29 -0
- package/dist/rules/prefer-stylelint-report-needless-disables.js.map +1 -0
- package/dist/rules/prefer-stylelint-report-unscoped-disables.d.ts +9 -0
- package/dist/rules/prefer-stylelint-report-unscoped-disables.d.ts.map +1 -0
- package/dist/rules/prefer-stylelint-report-unscoped-disables.js +29 -0
- package/dist/rules/prefer-stylelint-report-unscoped-disables.js.map +1 -0
- package/dist/rules/require-stylelint-config-file-naming-convention.d.ts +13 -0
- package/dist/rules/require-stylelint-config-file-naming-convention.d.ts.map +1 -0
- package/dist/rules/require-stylelint-config-file-naming-convention.js +58 -0
- package/dist/rules/require-stylelint-config-file-naming-convention.js.map +1 -0
- package/dist/rules/require-stylelint-custom-syntax-in-overrides.d.ts +7 -0
- package/dist/rules/require-stylelint-custom-syntax-in-overrides.d.ts.map +1 -0
- package/dist/rules/require-stylelint-custom-syntax-in-overrides.js +100 -0
- package/dist/rules/require-stylelint-custom-syntax-in-overrides.js.map +1 -0
- package/dist/rules/require-stylelint-extends-packages-installed.d.ts +12 -0
- package/dist/rules/require-stylelint-extends-packages-installed.d.ts.map +1 -0
- package/dist/rules/require-stylelint-extends-packages-installed.js +31 -0
- package/dist/rules/require-stylelint-extends-packages-installed.js.map +1 -0
- package/dist/rules/require-stylelint-overrides-configuration.d.ts +7 -0
- package/dist/rules/require-stylelint-overrides-configuration.d.ts.map +1 -0
- package/dist/rules/require-stylelint-overrides-configuration.js +100 -0
- package/dist/rules/require-stylelint-overrides-configuration.js.map +1 -0
- package/dist/rules/require-stylelint-overrides-files-array.d.ts +7 -0
- package/dist/rules/require-stylelint-overrides-files-array.d.ts.map +1 -0
- package/dist/rules/require-stylelint-overrides-files-array.js +99 -0
- package/dist/rules/require-stylelint-overrides-files-array.js.map +1 -0
- package/dist/rules/require-stylelint-overrides-files.d.ts +7 -0
- package/dist/rules/require-stylelint-overrides-files.d.ts.map +1 -0
- package/dist/rules/require-stylelint-overrides-files.js +104 -0
- package/dist/rules/require-stylelint-overrides-files.js.map +1 -0
- package/dist/rules/require-stylelint-plugins-packages-installed.d.ts +12 -0
- package/dist/rules/require-stylelint-plugins-packages-installed.d.ts.map +1 -0
- package/dist/rules/require-stylelint-plugins-packages-installed.js +31 -0
- package/dist/rules/require-stylelint-plugins-packages-installed.js.map +1 -0
- package/dist/rules/require-stylelint-report-disables.d.ts +9 -0
- package/dist/rules/require-stylelint-report-disables.d.ts.map +1 -0
- package/dist/rules/require-stylelint-report-disables.js +29 -0
- package/dist/rules/require-stylelint-report-disables.js.map +1 -0
- package/dist/rules/require-stylelint-rules-object.d.ts +7 -0
- package/dist/rules/require-stylelint-rules-object.d.ts.map +1 -0
- package/dist/rules/require-stylelint-rules-object.js +65 -0
- package/dist/rules/require-stylelint-rules-object.js.map +1 -0
- package/dist/rules/sort-stylelint-extends.d.ts +9 -0
- package/dist/rules/sort-stylelint-extends.d.ts.map +1 -0
- package/dist/rules/sort-stylelint-extends.js +28 -0
- package/dist/rules/sort-stylelint-extends.js.map +1 -0
- package/dist/rules/sort-stylelint-plugins.d.ts +9 -0
- package/dist/rules/sort-stylelint-plugins.d.ts.map +1 -0
- package/dist/rules/sort-stylelint-plugins.js +28 -0
- package/dist/rules/sort-stylelint-plugins.js.map +1 -0
- package/dist/rules/sort-stylelint-rule-keys.d.ts +7 -0
- package/dist/rules/sort-stylelint-rule-keys.d.ts.map +1 -0
- package/dist/rules/sort-stylelint-rule-keys.js +129 -0
- package/dist/rules/sort-stylelint-rule-keys.js.map +1 -0
- package/dist/rules/stylelint.d.ts +15 -0
- package/dist/rules/stylelint.d.ts.map +1 -0
- package/dist/rules/stylelint.js +157 -0
- package/dist/rules/stylelint.js.map +1 -0
- package/docs/rules/disallow-stylelint-allow-empty-input.md +62 -0
- package/docs/rules/disallow-stylelint-configuration-comment.md +62 -0
- package/docs/rules/disallow-stylelint-custom-syntax.md +70 -0
- package/docs/rules/disallow-stylelint-default-severity.md +77 -0
- package/docs/rules/disallow-stylelint-duplicate-extends.md +61 -0
- package/docs/rules/disallow-stylelint-duplicate-plugins.md +61 -0
- package/docs/rules/disallow-stylelint-duplicate-rule-option-values.md +73 -0
- package/docs/rules/disallow-stylelint-empty-rules-object.md +62 -0
- package/docs/rules/disallow-stylelint-ignore-disables.md +78 -0
- package/docs/rules/disallow-stylelint-ignore-files.md +78 -0
- package/docs/rules/disallow-stylelint-null-rule-config.md +63 -0
- package/docs/rules/disallow-stylelint-overrides-runtime-options.md +82 -0
- package/docs/rules/disallow-stylelint-processors.md +62 -0
- package/docs/rules/disallow-stylelint-relative-extends-paths.md +61 -0
- package/docs/rules/disallow-stylelint-relative-plugin-paths.md +61 -0
- package/docs/rules/getting-started.md +130 -0
- package/docs/rules/overview.md +99 -0
- package/docs/rules/prefer-stylelint-cache.md +79 -0
- package/docs/rules/prefer-stylelint-define-config.md +90 -0
- package/docs/rules/prefer-stylelint-extends-array.md +61 -0
- package/docs/rules/prefer-stylelint-fix.md +79 -0
- package/docs/rules/prefer-stylelint-formatter.md +80 -0
- package/docs/rules/prefer-stylelint-plugins-array.md +61 -0
- package/docs/rules/prefer-stylelint-report-descriptionless-disables.md +85 -0
- package/docs/rules/prefer-stylelint-report-invalid-scope-disables.md +83 -0
- package/docs/rules/prefer-stylelint-report-needless-disables.md +83 -0
- package/docs/rules/prefer-stylelint-report-unscoped-disables.md +83 -0
- package/docs/rules/presets/all.md +39 -0
- package/docs/rules/presets/configs.md +40 -0
- package/docs/rules/presets/configuration.md +64 -0
- package/docs/rules/presets/index.md +82 -0
- package/docs/rules/presets/recommended.md +40 -0
- package/docs/rules/presets/stylelint-only.md +42 -0
- package/docs/rules/require-stylelint-config-file-naming-convention.md +61 -0
- package/docs/rules/require-stylelint-custom-syntax-in-overrides.md +77 -0
- package/docs/rules/require-stylelint-extends-packages-installed.md +61 -0
- package/docs/rules/require-stylelint-overrides-configuration.md +80 -0
- package/docs/rules/require-stylelint-overrides-files-array.md +78 -0
- package/docs/rules/require-stylelint-overrides-files.md +83 -0
- package/docs/rules/require-stylelint-plugins-packages-installed.md +61 -0
- package/docs/rules/require-stylelint-report-disables.md +67 -0
- package/docs/rules/require-stylelint-rules-object.md +61 -0
- package/docs/rules/sort-stylelint-extends.md +61 -0
- package/docs/rules/sort-stylelint-plugins.md +61 -0
- package/docs/rules/sort-stylelint-rule-keys.md +65 -0
- package/docs/rules/stylelint.md +100 -0
- package/package.json +577 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Getting Started
|
|
3
|
+
description: Enable eslint-plugin-stylelint-2 quickly in Flat Config.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Getting Started
|
|
7
|
+
|
|
8
|
+
Install the plugin and Stylelint:
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
npm install --save-dev eslint-plugin-stylelint-2 eslint stylelint
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Then enable the recommended preset:
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
import stylelint2 from "eslint-plugin-stylelint-2";
|
|
18
|
+
|
|
19
|
+
export default [
|
|
20
|
+
...stylelint2.configs.recommended,
|
|
21
|
+
];
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## What `recommended` includes
|
|
25
|
+
|
|
26
|
+
`recommended` returns an array of flat config entries, not a single object.
|
|
27
|
+
|
|
28
|
+
It currently adds:
|
|
29
|
+
|
|
30
|
+
1. a CSS-targeted config that enables `stylelint-2/stylelint`
|
|
31
|
+
2. a config-file-targeted config that enables the Stylelint config authoring rules
|
|
32
|
+
|
|
33
|
+
## Stylelint bridge only
|
|
34
|
+
|
|
35
|
+
If you only want the Stylelint bridge for stylesheet files:
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
import stylelint2 from "eslint-plugin-stylelint-2";
|
|
39
|
+
|
|
40
|
+
export default [
|
|
41
|
+
stylelint2.configs.stylelintOnly,
|
|
42
|
+
];
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Stylelint config files only
|
|
46
|
+
|
|
47
|
+
If you only want the config-authoring rules and no stylesheet bridge:
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
import stylelint2 from "eslint-plugin-stylelint-2";
|
|
51
|
+
|
|
52
|
+
export default [
|
|
53
|
+
stylelint2.configs.configuration,
|
|
54
|
+
];
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Legacy aliases remain supported:
|
|
58
|
+
|
|
59
|
+
- `stylelint2.configs.stylesheets` → `stylelint2.configs.stylelintOnly`
|
|
60
|
+
- `stylelint2.configs.configs` → `stylelint2.configs.configuration`
|
|
61
|
+
|
|
62
|
+
That preset currently enables:
|
|
63
|
+
|
|
64
|
+
- `stylelint-2/disallow-stylelint-allow-empty-input`
|
|
65
|
+
- `stylelint-2/disallow-stylelint-configuration-comment`
|
|
66
|
+
- `stylelint-2/disallow-stylelint-custom-syntax`
|
|
67
|
+
- `stylelint-2/disallow-stylelint-default-severity`
|
|
68
|
+
- `stylelint-2/disallow-stylelint-duplicate-extends`
|
|
69
|
+
- `stylelint-2/disallow-stylelint-duplicate-plugins`
|
|
70
|
+
- `stylelint-2/disallow-stylelint-duplicate-rule-option-values`
|
|
71
|
+
- `stylelint-2/disallow-stylelint-empty-rules-object`
|
|
72
|
+
- `stylelint-2/disallow-stylelint-ignore-disables`
|
|
73
|
+
- `stylelint-2/disallow-stylelint-ignore-files`
|
|
74
|
+
- `stylelint-2/disallow-stylelint-null-rule-config`
|
|
75
|
+
- `stylelint-2/disallow-stylelint-overrides-runtime-options`
|
|
76
|
+
- `stylelint-2/disallow-stylelint-processors`
|
|
77
|
+
- `stylelint-2/disallow-stylelint-relative-extends-paths`
|
|
78
|
+
- `stylelint-2/disallow-stylelint-relative-plugin-paths`
|
|
79
|
+
- `stylelint-2/prefer-stylelint-cache`
|
|
80
|
+
- `stylelint-2/prefer-stylelint-define-config`
|
|
81
|
+
- `stylelint-2/prefer-stylelint-extends-array`
|
|
82
|
+
- `stylelint-2/prefer-stylelint-fix`
|
|
83
|
+
- `stylelint-2/prefer-stylelint-formatter`
|
|
84
|
+
- `stylelint-2/prefer-stylelint-plugins-array`
|
|
85
|
+
- `stylelint-2/prefer-stylelint-report-descriptionless-disables`
|
|
86
|
+
- `stylelint-2/prefer-stylelint-report-invalid-scope-disables`
|
|
87
|
+
- `stylelint-2/prefer-stylelint-report-needless-disables`
|
|
88
|
+
- `stylelint-2/prefer-stylelint-report-unscoped-disables`
|
|
89
|
+
- `stylelint-2/require-stylelint-custom-syntax-in-overrides`
|
|
90
|
+
- `stylelint-2/require-stylelint-config-file-naming-convention`
|
|
91
|
+
- `stylelint-2/require-stylelint-extends-packages-installed`
|
|
92
|
+
- `stylelint-2/require-stylelint-overrides-configuration`
|
|
93
|
+
- `stylelint-2/require-stylelint-overrides-files-array`
|
|
94
|
+
- `stylelint-2/require-stylelint-overrides-files`
|
|
95
|
+
- `stylelint-2/require-stylelint-plugins-packages-installed`
|
|
96
|
+
- `stylelint-2/require-stylelint-report-disables`
|
|
97
|
+
- `stylelint-2/require-stylelint-rules-object`
|
|
98
|
+
- `stylelint-2/sort-stylelint-extends`
|
|
99
|
+
- `stylelint-2/sort-stylelint-plugins`
|
|
100
|
+
- `stylelint-2/sort-stylelint-rule-keys`
|
|
101
|
+
|
|
102
|
+
## Adding Stylelint options
|
|
103
|
+
|
|
104
|
+
Pass rule options when you need a custom syntax or an explicit config file:
|
|
105
|
+
|
|
106
|
+
```ts
|
|
107
|
+
import stylelint2 from "eslint-plugin-stylelint-2";
|
|
108
|
+
|
|
109
|
+
export default [
|
|
110
|
+
{
|
|
111
|
+
...stylelint2.configs.stylelintOnly,
|
|
112
|
+
rules: {
|
|
113
|
+
"stylelint-2/stylelint": [
|
|
114
|
+
"error",
|
|
115
|
+
{
|
|
116
|
+
configFile: "./stylelint.config.mjs",
|
|
117
|
+
customSyntax: "postcss-scss",
|
|
118
|
+
ignoreDisables: true,
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
];
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## When to use ESLint + Stylelint together
|
|
127
|
+
|
|
128
|
+
Use this plugin when you want ESLint to be the single command that reports and fixes both JavaScript/TypeScript issues and stylesheet issues.
|
|
129
|
+
|
|
130
|
+
If your team already runs Stylelint separately and is happy with that split, this plugin may be unnecessary overhead.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Overview
|
|
3
|
+
description: Overview of eslint-plugin-stylelint-2 and its Stylelint-to-ESLint workflow.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# eslint-plugin-stylelint-2
|
|
7
|
+
|
|
8
|
+
`eslint-plugin-stylelint-2` lets you run Stylelint inside ESLint for CSS files and author Stylelint config files with a more predictable typed setup.
|
|
9
|
+
|
|
10
|
+
The current rule set focuses on three high-value workflows:
|
|
11
|
+
|
|
12
|
+
- surface Stylelint diagnostics through ESLint with autofix support
|
|
13
|
+
- disallow execution-only Stylelint config options that belong in the runner, not the shared config object
|
|
14
|
+
- disallow shared-config severity and file-ignore options that hide lint-policy changes globally
|
|
15
|
+
- standardize modern `stylelint-define-config` usage in Stylelint config modules
|
|
16
|
+
- require Stylelint config files to report disable comments that lack a reason
|
|
17
|
+
- require the full family of Stylelint disable-comment reporting safeguards in config files
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install --save-dev eslint-plugin-stylelint-2 eslint stylelint
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Quick start
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
import stylelint2 from "eslint-plugin-stylelint-2";
|
|
29
|
+
|
|
30
|
+
export default [
|
|
31
|
+
...stylelint2.configs.recommended,
|
|
32
|
+
];
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
`recommended` expands to two file-scoped flat config entries:
|
|
36
|
+
|
|
37
|
+
- one for CSS files using ESLint's `css/css` language
|
|
38
|
+
- one for Stylelint config files such as `stylelint.config.ts`
|
|
39
|
+
|
|
40
|
+
## Included presets
|
|
41
|
+
|
|
42
|
+
| Preset | Purpose |
|
|
43
|
+
| ----------------------------------------------------------------- | ------------------------------------------------------------- |
|
|
44
|
+
| [`stylelint2.configs.recommended`](./presets/recommended.md) | Stylesheet linting plus Stylelint config authoring guidance |
|
|
45
|
+
| [`stylelint2.configs.stylelintOnly`](./presets/stylelint-only.md) | Only run the Stylelint bridge workflow for stylesheet files |
|
|
46
|
+
| [`stylelint2.configs.configuration`](./presets/configuration.md) | Only lint Stylelint config modules, with no stylesheet bridge |
|
|
47
|
+
| [`stylelint2.configs.all`](./presets/all.md) | Enable every preset entry currently shipped by this plugin |
|
|
48
|
+
|
|
49
|
+
Legacy aliases remain supported:
|
|
50
|
+
|
|
51
|
+
- `stylelint2.configs.stylesheets` → `stylelint2.configs.stylelintOnly`
|
|
52
|
+
- `stylelint2.configs.configs` → `stylelint2.configs.configuration`
|
|
53
|
+
|
|
54
|
+
## Included rules
|
|
55
|
+
|
|
56
|
+
- [`stylelint`](./stylelint.md)
|
|
57
|
+
- [`disallow-stylelint-allow-empty-input`](./disallow-stylelint-allow-empty-input.md)
|
|
58
|
+
- [`disallow-stylelint-configuration-comment`](./disallow-stylelint-configuration-comment.md)
|
|
59
|
+
- [`disallow-stylelint-custom-syntax`](./disallow-stylelint-custom-syntax.md)
|
|
60
|
+
- [`disallow-stylelint-default-severity`](./disallow-stylelint-default-severity.md)
|
|
61
|
+
- [`disallow-stylelint-duplicate-extends`](./disallow-stylelint-duplicate-extends.md)
|
|
62
|
+
- [`disallow-stylelint-duplicate-plugins`](./disallow-stylelint-duplicate-plugins.md)
|
|
63
|
+
- [`disallow-stylelint-duplicate-rule-option-values`](./disallow-stylelint-duplicate-rule-option-values.md)
|
|
64
|
+
- [`disallow-stylelint-empty-rules-object`](./disallow-stylelint-empty-rules-object.md)
|
|
65
|
+
- [`disallow-stylelint-ignore-disables`](./disallow-stylelint-ignore-disables.md)
|
|
66
|
+
- [`disallow-stylelint-ignore-files`](./disallow-stylelint-ignore-files.md)
|
|
67
|
+
- [`disallow-stylelint-null-rule-config`](./disallow-stylelint-null-rule-config.md)
|
|
68
|
+
- [`disallow-stylelint-overrides-runtime-options`](./disallow-stylelint-overrides-runtime-options.md)
|
|
69
|
+
- [`disallow-stylelint-processors`](./disallow-stylelint-processors.md)
|
|
70
|
+
- [`disallow-stylelint-relative-extends-paths`](./disallow-stylelint-relative-extends-paths.md)
|
|
71
|
+
- [`disallow-stylelint-relative-plugin-paths`](./disallow-stylelint-relative-plugin-paths.md)
|
|
72
|
+
- [`prefer-stylelint-cache`](./prefer-stylelint-cache.md)
|
|
73
|
+
- [`prefer-stylelint-define-config`](./prefer-stylelint-define-config.md)
|
|
74
|
+
- [`prefer-stylelint-extends-array`](./prefer-stylelint-extends-array.md)
|
|
75
|
+
- [`prefer-stylelint-fix`](./prefer-stylelint-fix.md)
|
|
76
|
+
- [`prefer-stylelint-formatter`](./prefer-stylelint-formatter.md)
|
|
77
|
+
- [`prefer-stylelint-plugins-array`](./prefer-stylelint-plugins-array.md)
|
|
78
|
+
- [`prefer-stylelint-report-descriptionless-disables`](./prefer-stylelint-report-descriptionless-disables.md)
|
|
79
|
+
- [`prefer-stylelint-report-invalid-scope-disables`](./prefer-stylelint-report-invalid-scope-disables.md)
|
|
80
|
+
- [`prefer-stylelint-report-needless-disables`](./prefer-stylelint-report-needless-disables.md)
|
|
81
|
+
- [`prefer-stylelint-report-unscoped-disables`](./prefer-stylelint-report-unscoped-disables.md)
|
|
82
|
+
- [`require-stylelint-custom-syntax-in-overrides`](./require-stylelint-custom-syntax-in-overrides.md)
|
|
83
|
+
- [`require-stylelint-config-file-naming-convention`](./require-stylelint-config-file-naming-convention.md)
|
|
84
|
+
- [`require-stylelint-extends-packages-installed`](./require-stylelint-extends-packages-installed.md)
|
|
85
|
+
- [`require-stylelint-overrides-configuration`](./require-stylelint-overrides-configuration.md)
|
|
86
|
+
- [`require-stylelint-overrides-files-array`](./require-stylelint-overrides-files-array.md)
|
|
87
|
+
- [`require-stylelint-overrides-files`](./require-stylelint-overrides-files.md)
|
|
88
|
+
- [`require-stylelint-plugins-packages-installed`](./require-stylelint-plugins-packages-installed.md)
|
|
89
|
+
- [`require-stylelint-report-disables`](./require-stylelint-report-disables.md)
|
|
90
|
+
- [`require-stylelint-rules-object`](./require-stylelint-rules-object.md)
|
|
91
|
+
- [`sort-stylelint-extends`](./sort-stylelint-extends.md)
|
|
92
|
+
- [`sort-stylelint-plugins`](./sort-stylelint-plugins.md)
|
|
93
|
+
- [`sort-stylelint-rule-keys`](./sort-stylelint-rule-keys.md)
|
|
94
|
+
|
|
95
|
+
## Next steps
|
|
96
|
+
|
|
97
|
+
- Read [Getting Started](./getting-started.md) for copy-paste setup examples.
|
|
98
|
+
- Review [Presets](./presets/index.md) to pick the right rollout path.
|
|
99
|
+
- Open each rule page before enabling stricter adoption in a larger codebase.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# prefer-stylelint-cache
|
|
2
|
+
|
|
3
|
+
Prefer enabling Stylelint's top-level `cache` option in authored Stylelint config files.
|
|
4
|
+
|
|
5
|
+
This rule is intentionally excluded from `stylelint2.configs.recommended` because it encodes an opinionated operational default rather than a broadly applicable config-hygiene rule.
|
|
6
|
+
|
|
7
|
+
## Targeted pattern scope
|
|
8
|
+
|
|
9
|
+
This rule targets Stylelint config modules such as `stylelint.config.ts`, `stylelint.config.mjs`, and `.stylelintrc.js`.
|
|
10
|
+
|
|
11
|
+
It focuses on top-level exported config objects, including configs wrapped in `defineConfig(...)`.
|
|
12
|
+
|
|
13
|
+
## What this rule reports
|
|
14
|
+
|
|
15
|
+
This rule reports Stylelint config objects that omit `cache`, or configure it as a disabled value.
|
|
16
|
+
|
|
17
|
+
## Why this rule exists
|
|
18
|
+
|
|
19
|
+
If your team consistently runs Stylelint with caching enabled, an explicit top-level `cache` setting makes that default visible in the shared config instead of leaving it implicit in scattered scripts.
|
|
20
|
+
|
|
21
|
+
This rule is opinionated. It is useful when you want config files to advertise that fast repeated lint runs are part of the default workflow.
|
|
22
|
+
|
|
23
|
+
## ❌ Incorrect
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
export default {
|
|
27
|
+
rules: {},
|
|
28
|
+
};
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## ✅ Correct
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
export default {
|
|
35
|
+
cache: true,
|
|
36
|
+
rules: {},
|
|
37
|
+
};
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Behavior and migration notes
|
|
41
|
+
|
|
42
|
+
- This rule auto-fixes missing or disabled top-level `cache` configuration to `cache: true`.
|
|
43
|
+
- It preserves the rest of the config object.
|
|
44
|
+
- Use this rule only when cache-on-by-default is a deliberate repository policy.
|
|
45
|
+
|
|
46
|
+
## Additional examples
|
|
47
|
+
|
|
48
|
+
### ✅ Correct — cache policy at invocation level
|
|
49
|
+
|
|
50
|
+
```json
|
|
51
|
+
{
|
|
52
|
+
"scripts": {
|
|
53
|
+
"lint:stylelint": "stylelint --cache \"src/**/*.{css,scss}\""
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## ESLint flat config example
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
import stylelint2 from "eslint-plugin-stylelint-2";
|
|
62
|
+
|
|
63
|
+
export default [stylelint2.configs.configuration];
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## When not to use it
|
|
67
|
+
|
|
68
|
+
Do not use this rule if your team prefers cache behavior to stay entirely at invocation scope or wants different runners to choose different cache strategies.
|
|
69
|
+
|
|
70
|
+
## Package documentation
|
|
71
|
+
|
|
72
|
+
Stylelint package documentation:
|
|
73
|
+
|
|
74
|
+
> **Rule catalog ID:** R012
|
|
75
|
+
|
|
76
|
+
## Further reading
|
|
77
|
+
|
|
78
|
+
- [Stylelint configuring guide](https://stylelint.io/user-guide/configure/#cache)
|
|
79
|
+
- [Stylelint cache option](https://stylelint.io/user-guide/options/#cache)
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# prefer-stylelint-define-config
|
|
2
|
+
|
|
3
|
+
Prefer wrapping exported Stylelint config objects in `defineConfig()` from `stylelint-define-config`.
|
|
4
|
+
|
|
5
|
+
## Targeted pattern scope
|
|
6
|
+
|
|
7
|
+
This rule targets direct default object exports in Stylelint config files such as `stylelint.config.ts` and `.stylelintrc.js`.
|
|
8
|
+
|
|
9
|
+
It intentionally focuses on the narrow case that can be autofixed safely.
|
|
10
|
+
|
|
11
|
+
## What this rule reports
|
|
12
|
+
|
|
13
|
+
This rule reports `export default { ... }` object exports in Stylelint config files when the object is not wrapped in `defineConfig(...)`.
|
|
14
|
+
|
|
15
|
+
## Why this rule exists
|
|
16
|
+
|
|
17
|
+
`defineConfig()` makes the intent of a Stylelint config module explicit and improves tooling support for config authoring.
|
|
18
|
+
|
|
19
|
+
The helper also gives teams a single recognizable pattern for authored config modules instead of a mix of raw objects and helper-wrapped objects.
|
|
20
|
+
|
|
21
|
+
## ❌ Incorrect
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
export default {
|
|
25
|
+
rules: {
|
|
26
|
+
"color-no-invalid-hex": true,
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## ✅ Correct
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
import { defineConfig } from "stylelint-define-config";
|
|
35
|
+
|
|
36
|
+
export default defineConfig({
|
|
37
|
+
rules: {
|
|
38
|
+
"color-no-invalid-hex": true,
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Behavior and migration notes
|
|
44
|
+
|
|
45
|
+
- The current autofix rewrites direct object exports only.
|
|
46
|
+
- The rule does not try to rewrite CommonJS config modules.
|
|
47
|
+
- The rule does not try to rewrite `export default config` when `config` is declared elsewhere.
|
|
48
|
+
|
|
49
|
+
That restraint is deliberate. Broad config rewrites are easier to get wrong than direct object-export fixes.
|
|
50
|
+
|
|
51
|
+
## Additional examples
|
|
52
|
+
|
|
53
|
+
### ✅ Correct — already wrapped export
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
import { defineConfig } from "stylelint-define-config";
|
|
57
|
+
|
|
58
|
+
const config = defineConfig({
|
|
59
|
+
rules: {
|
|
60
|
+
"color-no-invalid-hex": true,
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
export default config;
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## ESLint flat config example
|
|
68
|
+
|
|
69
|
+
```ts
|
|
70
|
+
import stylelint2 from "eslint-plugin-stylelint-2";
|
|
71
|
+
|
|
72
|
+
export default [
|
|
73
|
+
stylelint2.configs.configuration,
|
|
74
|
+
];
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## When not to use it
|
|
78
|
+
|
|
79
|
+
Do not use this rule if your project intentionally keeps Stylelint configs in CommonJS or uses a custom config factory that should stay unchanged.
|
|
80
|
+
|
|
81
|
+
## Package documentation
|
|
82
|
+
|
|
83
|
+
Stylelint package documentation:
|
|
84
|
+
|
|
85
|
+
> **Rule catalog ID:** R002
|
|
86
|
+
|
|
87
|
+
## Further reading
|
|
88
|
+
|
|
89
|
+
- [stylelint-define-config](https://www.npmjs.com/package/stylelint-define-config)
|
|
90
|
+
- [Stylelint configuration guide](https://stylelint.io/user-guide/configure)
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# prefer-stylelint-extends-array
|
|
2
|
+
|
|
3
|
+
Prefer array form for top-level Stylelint `extends` declarations.
|
|
4
|
+
|
|
5
|
+
## Targeted pattern scope
|
|
6
|
+
|
|
7
|
+
This rule targets Stylelint config modules such as `stylelint.config.ts`, `stylelint.config.mjs`, and `.stylelintrc.js`.
|
|
8
|
+
|
|
9
|
+
It focuses on top-level exported config objects, including configs wrapped in `defineConfig(...)`.
|
|
10
|
+
|
|
11
|
+
## What this rule reports
|
|
12
|
+
|
|
13
|
+
Reports `extends` when it is defined as a single string instead of an array.
|
|
14
|
+
|
|
15
|
+
## Why this rule exists
|
|
16
|
+
|
|
17
|
+
Array form is easier to append, reorder, and review safely in shared config files.
|
|
18
|
+
|
|
19
|
+
## ❌ Incorrect
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
export default {
|
|
23
|
+
extends: "stylelint-config-standard",
|
|
24
|
+
rules: {},
|
|
25
|
+
};
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## ✅ Correct
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
export default {
|
|
32
|
+
extends: ["stylelint-config-standard"],
|
|
33
|
+
rules: {},
|
|
34
|
+
};
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Behavior and migration notes
|
|
38
|
+
|
|
39
|
+
This rule auto-fixes scalar string form to a single-entry array.
|
|
40
|
+
|
|
41
|
+
## ESLint flat config example
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
import stylelint2 from "eslint-plugin-stylelint-2";
|
|
45
|
+
|
|
46
|
+
export default [stylelint2.configs.configuration];
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## When not to use it
|
|
50
|
+
|
|
51
|
+
Do not use this rule if your repository intentionally enforces scalar `extends` syntax in every Stylelint config file.
|
|
52
|
+
|
|
53
|
+
## Package documentation
|
|
54
|
+
|
|
55
|
+
Stylelint package documentation:
|
|
56
|
+
|
|
57
|
+
> **Rule catalog ID:** R021
|
|
58
|
+
|
|
59
|
+
## Further reading
|
|
60
|
+
|
|
61
|
+
- [Stylelint extends](https://stylelint.io/user-guide/configure/#extends)
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# prefer-stylelint-fix
|
|
2
|
+
|
|
3
|
+
Prefer enabling Stylelint's top-level `fix` option in authored Stylelint config files.
|
|
4
|
+
|
|
5
|
+
## Targeted pattern scope
|
|
6
|
+
|
|
7
|
+
This rule targets Stylelint config modules such as `stylelint.config.ts`, `stylelint.config.mjs`, and `.stylelintrc.js`.
|
|
8
|
+
|
|
9
|
+
It focuses on top-level exported config objects, including configs wrapped in `defineConfig(...)`.
|
|
10
|
+
|
|
11
|
+
## What this rule reports
|
|
12
|
+
|
|
13
|
+
This rule reports Stylelint config objects that omit `fix`, or configure it with a disabled value.
|
|
14
|
+
|
|
15
|
+
## Why this rule exists
|
|
16
|
+
|
|
17
|
+
If your repository expects Stylelint autofix to be on by default, an explicit top-level `fix` setting makes that operational choice visible and consistent.
|
|
18
|
+
|
|
19
|
+
This rule is intentionally opinionated and best suited for repositories that want shared Stylelint config files to declare autofix-on behavior directly.
|
|
20
|
+
|
|
21
|
+
This rule is intentionally excluded from `stylelint2.configs.recommended` because it encodes an opinionated operational default rather than a broadly applicable config-hygiene rule.
|
|
22
|
+
|
|
23
|
+
## ❌ Incorrect
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
export default {
|
|
27
|
+
rules: {},
|
|
28
|
+
};
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## ✅ Correct
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
export default {
|
|
35
|
+
fix: true,
|
|
36
|
+
rules: {},
|
|
37
|
+
};
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Behavior and migration notes
|
|
41
|
+
|
|
42
|
+
- This rule auto-fixes missing or disabled top-level `fix` configuration to `fix: true`.
|
|
43
|
+
- Existing enabled values such as `"strict"` and `"lax"` are accepted.
|
|
44
|
+
- Use this rule only when enabling autofix in shared config is an intentional repository policy.
|
|
45
|
+
|
|
46
|
+
## Additional examples
|
|
47
|
+
|
|
48
|
+
### ✅ Correct — execution controls autofix
|
|
49
|
+
|
|
50
|
+
```json
|
|
51
|
+
{
|
|
52
|
+
"scripts": {
|
|
53
|
+
"lint:styles": "eslint \"src/**/*.{css,scss}\""
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## ESLint flat config example
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
import stylelint2 from "eslint-plugin-stylelint-2";
|
|
62
|
+
|
|
63
|
+
export default [stylelint2.configs.configuration];
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## When not to use it
|
|
67
|
+
|
|
68
|
+
Do not use this rule if your team wants autofix to stay an invocation-only decision or needs different fix modes across environments.
|
|
69
|
+
|
|
70
|
+
## Package documentation
|
|
71
|
+
|
|
72
|
+
Stylelint package documentation:
|
|
73
|
+
|
|
74
|
+
> **Rule catalog ID:** R011
|
|
75
|
+
|
|
76
|
+
## Further reading
|
|
77
|
+
|
|
78
|
+
- [Stylelint configuring guide](https://stylelint.io/user-guide/configure/#fix)
|
|
79
|
+
- [Stylelint autofix documentation](https://stylelint.io/user-guide/options/#fix)
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# prefer-stylelint-formatter
|
|
2
|
+
|
|
3
|
+
Prefer explicit top-level Stylelint `formatter` configuration in authored Stylelint config files.
|
|
4
|
+
|
|
5
|
+
## Targeted pattern scope
|
|
6
|
+
|
|
7
|
+
This rule targets Stylelint config modules such as `stylelint.config.ts`, `stylelint.config.mjs`, and `.stylelintrc.js`.
|
|
8
|
+
|
|
9
|
+
It focuses on top-level exported config objects, including configs wrapped in `defineConfig(...)`.
|
|
10
|
+
|
|
11
|
+
## What this rule reports
|
|
12
|
+
|
|
13
|
+
This rule reports Stylelint config objects that omit `formatter`, or configure it with an unusable empty string.
|
|
14
|
+
|
|
15
|
+
## Why this rule exists
|
|
16
|
+
|
|
17
|
+
If your team wants Stylelint output shape to be explicit across runners, an explicit shared `formatter` setting keeps that policy visible in the config instead of burying it in task wiring.
|
|
18
|
+
|
|
19
|
+
This is an opinionated rule. It is useful only when consistent formatter selection is part of your repository policy.
|
|
20
|
+
|
|
21
|
+
This rule is intentionally excluded from `stylelint2.configs.recommended` because it encodes an opinionated operational default rather than a broadly applicable config-hygiene rule.
|
|
22
|
+
|
|
23
|
+
## ❌ Incorrect
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
export default {
|
|
27
|
+
rules: {},
|
|
28
|
+
};
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## ✅ Correct
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
export default {
|
|
35
|
+
formatter: "json",
|
|
36
|
+
rules: {},
|
|
37
|
+
};
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Behavior and migration notes
|
|
41
|
+
|
|
42
|
+
- This rule reports missing or unusable top-level `formatter` configuration.
|
|
43
|
+
- It does not auto-fix because the correct formatter choice is repository-specific.
|
|
44
|
+
- Non-literal formatter expressions are accepted to avoid false positives in JavaScript-based config modules.
|
|
45
|
+
|
|
46
|
+
## Additional examples
|
|
47
|
+
|
|
48
|
+
### ✅ Correct — formatter belongs in the runner
|
|
49
|
+
|
|
50
|
+
```ts
|
|
51
|
+
await stylelint.lint({
|
|
52
|
+
code,
|
|
53
|
+
formatter: "string",
|
|
54
|
+
});
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## ESLint flat config example
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
import stylelint2 from "eslint-plugin-stylelint-2";
|
|
61
|
+
|
|
62
|
+
export default [
|
|
63
|
+
stylelint2.configs.configuration,
|
|
64
|
+
];
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## When not to use it
|
|
68
|
+
|
|
69
|
+
Do not use this rule if your team prefers formatter choice to remain purely at invocation scope.
|
|
70
|
+
|
|
71
|
+
## Package documentation
|
|
72
|
+
|
|
73
|
+
Stylelint package documentation:
|
|
74
|
+
|
|
75
|
+
> **Rule catalog ID:** R007
|
|
76
|
+
|
|
77
|
+
## Further reading
|
|
78
|
+
|
|
79
|
+
- [Stylelint configuring guide](https://stylelint.io/user-guide/configure/#formatter)
|
|
80
|
+
- [Stylelint Node API](https://stylelint.io/user-guide/node-api/)
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# prefer-stylelint-plugins-array
|
|
2
|
+
|
|
3
|
+
Prefer array form for top-level Stylelint `plugins` declarations.
|
|
4
|
+
|
|
5
|
+
## Targeted pattern scope
|
|
6
|
+
|
|
7
|
+
This rule targets Stylelint config modules such as `stylelint.config.ts`, `stylelint.config.mjs`, and `.stylelintrc.js`.
|
|
8
|
+
|
|
9
|
+
It focuses on top-level exported config objects, including configs wrapped in `defineConfig(...)`.
|
|
10
|
+
|
|
11
|
+
## What this rule reports
|
|
12
|
+
|
|
13
|
+
Reports `plugins` when it is defined as a single string instead of an array.
|
|
14
|
+
|
|
15
|
+
## Why this rule exists
|
|
16
|
+
|
|
17
|
+
Array form makes plugin composition deterministic and easier to maintain in shared configuration.
|
|
18
|
+
|
|
19
|
+
## ❌ Incorrect
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
export default {
|
|
23
|
+
plugins: "stylelint-order",
|
|
24
|
+
rules: {},
|
|
25
|
+
};
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## ✅ Correct
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
export default {
|
|
32
|
+
plugins: ["stylelint-order"],
|
|
33
|
+
rules: {},
|
|
34
|
+
};
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Behavior and migration notes
|
|
38
|
+
|
|
39
|
+
This rule auto-fixes scalar string form to a single-entry array.
|
|
40
|
+
|
|
41
|
+
## ESLint flat config example
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
import stylelint2 from "eslint-plugin-stylelint-2";
|
|
45
|
+
|
|
46
|
+
export default [stylelint2.configs.configuration];
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## When not to use it
|
|
50
|
+
|
|
51
|
+
Do not use this rule if your repository intentionally enforces scalar `plugins` syntax.
|
|
52
|
+
|
|
53
|
+
## Package documentation
|
|
54
|
+
|
|
55
|
+
Stylelint package documentation:
|
|
56
|
+
|
|
57
|
+
> **Rule catalog ID:** R022
|
|
58
|
+
|
|
59
|
+
## Further reading
|
|
60
|
+
|
|
61
|
+
- [Stylelint plugins](https://stylelint.io/user-guide/configure/#plugins)
|