eslint-plugin-vue icon indicating copy to clipboard operation
eslint-plugin-vue copied to clipboard

Planning for v10

Open ota-meshi opened this issue 1 year ago • 10 comments

This issue lists the changes we plan to release in eslint-plugin-vue v10.

💥 Breaking Changes

  • #2153
  • Add support for defineNuxtComponent()
  • Drop support for Node.js v14, v16
  • Drop support for ESLint v7(?) and use use ecmaVersion: 'latest' (#1991).
  • Change "Versioning Policy"?
    • Allow minor versions of this plugin to enhance the checks for new features in Vue and Nuxt.
    • Allow updating deprecated/reserved HTML+SVG element tag names in minor versions, see #2171
  • Change presets, or #1951
  • https://github.com/vuejs/vue-eslint-parser/pull/195
  • Remove deprecated rules: https://eslint.vuejs.org/rules/#deprecated

✨ Enhancements

  • #2153
  • Support for Nuxt v3
    • Add support for defineNuxtComponent()
      • (Related to #2057)
      • (Related to #2191)
    • Add support for auto imports, and "#imports"
      • (Related to #1969)
  • #1291

ota-meshi avatar May 13 '23 04:05 ota-meshi

from changelog, vue/no-dupe-keys only support in "eslint-plugin-vue": "^9.14.0",, but I install 9.13.0, and vscode still show the error with Duplicated key. I don't know why... image

here are my eslint config:

/* eslint-env node */
require('@rushstack/eslint-patch/modern-module-resolution');

module.exports = {
  root: true,
  extends: [
    'plugin:vue/vue3-essential',
    'eslint:recommended',
    '@vue/eslint-config-typescript',
    // fileURLToPath(new URL('./.eslintrc-auto-import.json', import.meta.url)),
    '@vue/eslint-config-prettier/skip-formatting',
    './.eslintrc-auto-import.json',
  ],
  parserOptions: {
    ecmaVersion: 'latest',
  },
  rules: {
    '@typescript-eslint/ban-ts-comment': 'off',
    '@typescript-eslint/no-unused-vars': [
      'error',
      {
        argsIgnorePattern: '^_',
      },
    ],
    '@typescript-eslint/no-explicit-any': 'off',
    curly: 'error',
    'vue/multi-word-component-names': 'off',
    // 'vue/no-dupe-keys': 'off',
  },
  globals: {
    FroalaEditor: true,
    CSV: true,
  },
};

package.json:

  "devDependencies": {
    "@commitlint/cli": "^15.0.0",
    "@commitlint/config-conventional": "^15.0.0",
    "@rushstack/eslint-patch": "^1.2.0",
    "@types/encoding-japanese": "^2.0.0",
    "@types/jsdom": "^21.1.0",
    "@types/node": "^18.14.2",
    "@types/papaparse": "^5.3.2",
    "@vitejs/plugin-vue": "^4.2.3",
    "@vitejs/plugin-vue-jsx": "^3.0.1",
    "@vue/eslint-config-prettier": "^7.1.0",
    "@vue/eslint-config-typescript": "^11.0.2",
    "@vue/test-utils": "^2.3.0",
    "@vue/tsconfig": "^0.1.3",
    "autoprefixer": "^10.4.0",
    "eslint": "^8.34.0",
    "eslint-plugin-vue": "^9.13.0",
    "husky": "^7.0.4",
    "jsdom": "^21.1.0",
    "lint-staged": "^12.1.2",
    "npm-run-all": "^4.1.5",
    "postcss": "^8.4.4",
    "prettier": "^2.8.4",
    "prettier-plugin-tailwindcss": "^0.2.6",
    "typescript": "~4.8.4",
    "unplugin-auto-import": "^0.16.1",
    "unplugin-vue-components": "^0.24.1",
    "vite": "^4.1.4",
    "vitest": "^0.29.1",
    "vue-tsc": "^1.6.5"
  },

@ota-meshi

ishowman avatar May 25 '23 04:05 ishowman

Please don't comment unrelated to this thread. Please follow #2096.

ota-meshi avatar May 25 '23 04:05 ota-meshi

As for full ESLint v9 support, which is related to the Flat Config milestone, we also need Type Declarations built-into the package so we can use type check configs.

pauliesnug avatar Jun 28 '24 12:06 pauliesnug

@pauliesnug PR welcome! That doesn't even have to wait for v10 because it's not a breaking change.

FloEdelmann avatar Jun 28 '24 15:06 FloEdelmann

@pauliesnug PR welcome! That doesn't even have to wait for v10 because it's not a breaking change.

Oh awesome, thank you so much @FloEdelmann I'll open one tomorrow <3

pauliesnug avatar Jul 02 '24 18:07 pauliesnug

As for full ESLint v9 support, which is related to the Flat Config milestone, we also need Type Declarations built-into the package so we can use type check configs.

Somewhat related, https://github.com/eslint/eslint/pull/18134 was merged which adds experimental TypeScript config files.

jfrs avatar Aug 09 '24 12:08 jfrs

As for full ESLint v9 support, which is related to the Flat Config milestone, we also need Type Declarations built-into the package so we can use type check configs.

Somewhat related, eslint/eslint#18134 was merged which adds experimental TypeScript config files.

Which results into a

Vue: Could not find a declaration file for module eslint-plugin-vue.
path/ node_modules/.pnpm/ [email protected][email protected][email protected]_/ node_modules/ eslint-plugin-vue/ lib/ index. js
implicitly has an any type.
Try npm i --save-dev @types/ eslint-plugin-vue if it exists or add a new declaration (.d. ts) file containing declare module 'eslint-plugin-vue';

MartinX3 avatar Aug 11 '24 11:08 MartinX3