Skip to content

Stop non-Vue repositories pulling the Vue ESLint plugins #6

Description

@Radiergummi

Independent of the blockers, and deliverable now. This is the cost of keeping ESLint that consumers feel today.

js/package.json declares every ESLint plugin as a regular dependency, including eslint-plugin-vue, eslint-plugin-vuejs-accessibility, eslint-plugin-pinia, eslint-plugin-better-tailwindcss and vue-eslint-parser. That was chosen deliberately, so plugin versions are pinned centrally and adoption needs no per-repository plugin list. The cost is that a repository with no .vue files anywhere — docker-swarm-deployment-action, teams-agent — still installs the whole Vue lint toolchain to use the formatter.

Options

  1. Move the Vue-only plugins to peerDependencies with peerDependenciesMeta.optional: true, and have ./eslint/vue fail with a clear message when they are absent. Vue repositories then list four plugins themselves, which is the version drift this package exists to remove.
  2. Split a second package, @matchory/coding-style-vue, that owns the Vue surface. Clean separation, but a second version line to keep aligned.
  3. Accept the install weight until ESLint goes away entirely, and close this as wontfix.

Recommendation

Option 3 unless someone actually complains. The weight is dev-only, and options 1 and 2 both reintroduce a version-drift surface to solve a disk-space problem. Worth reconsidering if this milestone stalls for more than a couple of quarters.

Definition of done

A recorded decision, and if it is option 1 or 2, the implementation plus a README note.

Metadata

Metadata

Assignees

No one assigned

    Labels

    eslint-removalPart of removing ESLint from the preset stack

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions