From 5172433f9db04ee989a33e99e244d669cfa5365e Mon Sep 17 00:00:00 2001 From: Boshen <1430279+Boshen@users.noreply.github.com> Date: Wed, 8 Oct 2025 12:02:24 +0000 Subject: [PATCH] Release 1.21.0 --- .../guide/usage/linter/generated-config.md | 6 ++ .../guide/usage/linter/generated-rules.md | 8 +- .../guide/usage/linter/rules/version.data.js | 2 +- .../rules/vue/no-import-compiler-macros.md | 75 +++++++++++++++++++ .../rules/vue/require-default-export.md | 69 +++++++++++++++++ 5 files changed, 156 insertions(+), 4 deletions(-) create mode 100644 src/docs/guide/usage/linter/rules/vue/no-import-compiler-macros.md create mode 100644 src/docs/guide/usage/linter/rules/vue/require-default-export.md diff --git a/src/docs/guide/usage/linter/generated-config.md b/src/docs/guide/usage/linter/generated-config.md index b129ddcd1d..88b1f96347 100644 --- a/src/docs/guide/usage/linter/generated-config.md +++ b/src/docs/guide/usage/linter/generated-config.md @@ -151,6 +151,9 @@ default: `null` JS plugins. +Note: JS plugins are experimental and not subject to semver. +They are not supported in language server at present. + ## overrides type: `array` @@ -171,6 +174,9 @@ type: `string[]` JS plugins for this override. +Note: JS plugins are experimental and not subject to semver. +They are not supported in language server at present. + #### overrides[n].rules type: `object` diff --git a/src/docs/guide/usage/linter/generated-rules.md b/src/docs/guide/usage/linter/generated-rules.md index 84ee289d2c..ae7b72a080 100644 --- a/src/docs/guide/usage/linter/generated-rules.md +++ b/src/docs/guide/usage/linter/generated-rules.md @@ -2,7 +2,7 @@ The progress of all rule implementations is tracked [here](https://github.com/oxc-project/oxc/issues/481). -- Total number of rules: 602 +- Total number of rules: 604 - Rules turned on by default: 103 **Legend for 'Fixable?' column:** @@ -235,7 +235,7 @@ Code that can be written to run faster. | [prefer-array-flat-map](/docs/guide/usage/linter/rules/unicorn/prefer-array-flat-map.html) | unicorn | | 🛠️ | | [prefer-set-has](/docs/guide/usage/linter/rules/unicorn/prefer-set-has.html) | unicorn | | ⚠️🛠️️ | -## Restriction (74): +## Restriction (75): Lints which prevent the use of language and library features. Must not be enabled as a whole, should be considered on a case-by-case basis before enabling. @@ -314,9 +314,10 @@ Lints which prevent the use of language and library features. Must not be enable | [prefer-node-protocol](/docs/guide/usage/linter/rules/unicorn/prefer-node-protocol.html) | unicorn | | 🛠️ | | [prefer-number-properties](/docs/guide/usage/linter/rules/unicorn/prefer-number-properties.html) | unicorn | | ⚠️🛠️️ | | [max-props](/docs/guide/usage/linter/rules/vue/max-props.html) | vue | | | +| [no-import-compiler-macros](/docs/guide/usage/linter/rules/vue/no-import-compiler-macros.html) | vue | | ⚠️🛠️️ | | [no-multiple-slot-args](/docs/guide/usage/linter/rules/vue/no-multiple-slot-args.html) | vue | | 🚧 | -## Suspicious (46): +## Suspicious (47): code that is most likely wrong or useless. @@ -368,6 +369,7 @@ code that is most likely wrong or useless. | [require-module-specifiers](/docs/guide/usage/linter/rules/unicorn/require-module-specifiers.html) | unicorn | | 🛠️ | | [require-post-message-target-origin](/docs/guide/usage/linter/rules/unicorn/require-post-message-target-origin.html) | unicorn | | 💡 | | [no-required-prop-with-default](/docs/guide/usage/linter/rules/vue/no-required-prop-with-default.html) | vue | | 🚧 | +| [require-default-export](/docs/guide/usage/linter/rules/vue/require-default-export.html) | vue | | | ## Pedantic (101): diff --git a/src/docs/guide/usage/linter/rules/version.data.js b/src/docs/guide/usage/linter/rules/version.data.js index 08be1ae4d2..689ca39403 100644 --- a/src/docs/guide/usage/linter/rules/version.data.js +++ b/src/docs/guide/usage/linter/rules/version.data.js @@ -1,5 +1,5 @@ export default { load() { - return "d16df93cf48e1ed143f54797842f84116484b4ba"; + return "11e0440fd2a7b9b4df14f5e0c72999d13e1c861b"; }, }; diff --git a/src/docs/guide/usage/linter/rules/vue/no-import-compiler-macros.md b/src/docs/guide/usage/linter/rules/vue/no-import-compiler-macros.md new file mode 100644 index 0000000000..28e684f3d2 --- /dev/null +++ b/src/docs/guide/usage/linter/rules/vue/no-import-compiler-macros.md @@ -0,0 +1,75 @@ + + + + +# vue/no-import-compiler-macros + +
+ +⚠️🛠️️ A dangerous auto-fix is available for this rule. + +
+ +### What it does + +Disallow importing Vue compiler macros. + +### Why is this bad? + +Compiler Macros like: + +- `defineProps` +- `defineEmits` +- `defineExpose` +- `withDefaults` +- `defineModel` +- `defineOptions` +- `defineSlots` + +are globally available in Vue 3's ` +``` + +Examples of **correct** code for this rule: + +```vue + +``` + +## How to use + +To **enable** this rule in the CLI or using the config file, you can use: + +::: code-group + +```bash [CLI] +oxlint --deny vue/no-import-compiler-macros --vue-plugin +``` + +```json [Config (.oxlintrc.json)] +{ + "plugins": ["vue"], + "rules": { + "vue/no-import-compiler-macros": "error" + } +} +``` + +::: + +## References + +- Rule Source diff --git a/src/docs/guide/usage/linter/rules/vue/require-default-export.md b/src/docs/guide/usage/linter/rules/vue/require-default-export.md new file mode 100644 index 0000000000..d6ddef8406 --- /dev/null +++ b/src/docs/guide/usage/linter/rules/vue/require-default-export.md @@ -0,0 +1,69 @@ + + + + +# vue/require-default-export + +
+
+ +### What it does + +Require components to be the default export. + +### Why is this bad? + +Using SFCs (Single File Components) without a default export is +not supported in Vue 3. Components should be exported as the default export. + +### Examples + +Examples of **incorrect** code for this rule: + +```vue + +``` + +Examples of **correct** code for this rule: + +```vue + +``` + +## How to use + +To **enable** this rule in the CLI or using the config file, you can use: + +::: code-group + +```bash [CLI] +oxlint --deny vue/require-default-export --vue-plugin +``` + +```json [Config (.oxlintrc.json)] +{ + "plugins": ["vue"], + "rules": { + "vue/require-default-export": "error" + } +} +``` + +::: + +## References + +- Rule Source