Skip to content

chore: remove Vue CLI leftovers and fix the ESLint setup (BITS-213) - #26

Merged
PhilReinking merged 2 commits into
mainfrom
chore/bits-213-eslint-vue-cli
Oct 11, 2026
Merged

PhilReinking merged 2 commits into
mainfrom
chore/bits-213-eslint-vue-cli

Conversation

@PhilReinking

Copy link
Copy Markdown
Contributor

Removes babel.config.js, @vue/cli-plugin-babel and @vue/cli-plugin-eslint, which neither Vite nor Storybook used, and makes ESLint load again with a new npm run lint script.

Fixes BITS-213

  • The lockfile change is the npm uninstall only: 342 dev packages removed, nothing added or upgraded. The runtime tree is the same as on main.
  • Rules turned off because they fight the code style: formatting checks (hand-wrapped class lists), vue/multi-word-component-names, no-explicit-any in stories, no-empty-function in tests.
  • CI now runs npm run lint after npm ci.
  • src/: removed unused imports in MenuContainer.vue and Textarea.stories.ts, and an unused parameter in Icon.stories.ts.

Tested: lint, check, test, build and the dist type-check pass. dist is byte-identical to main, Storybook builds the same stories, lint fails on a planted bug.
Not tested: clicking through Storybook by hand.

npm audit

No websocket-driver or shell-quote advisory left. Total advisories 122 → 86, critical 8 → 6. Still critical (all dev only): form-data, handlebars, proxy-addr, tar, tinypool, vitest.

🤖 Generated with Claude Code

Neither Vite nor Storybook used babel.config.js, @vue/cli-plugin-babel or
@vue/cli-plugin-eslint. Removing them drops 342 dev packages, including
@vue/cli-service, webpack-dev-server, yorkie and the websocket-driver and
shell-quote advisories. The lockfile change is the npm uninstall only.

ESLint loads again: the missing @vue/prettier/@typescript-eslint preset is
gone. New `npm run lint` script, also run in CI.

Rules turned off because they fight the code style, not bugs:
- formatting checks (skip-formatting): templates wrap long class lists by hand
- vue/multi-word-component-names: components are named after their file
- no-explicit-any in stories: the any hides type errors on story args
- no-empty-function in tests: browser API stubs do nothing on purpose

Removed unused imports and an unused parameter in three src files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@PhilReinking PhilReinking left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK at 6a84c1d, CI green. One should inline.

Checked beyond the PR text: on main ESLint doesn't start, here it covers 49 files (all but .storybook/). With the rules you turned off back on, lint flags only one-word component names, any in Menu.stories.ts, two test stubs and mostly hand-wrapped class lists, so turning them off is fair. The lockfile only removes entries; dist, the prod tree and the prod audit match main.

Comment thread package.json Outdated
"author": "Philipp Reinking <philipp@deck9.co> (https://deck9.co)",
"scripts": {
"check": "vue-tsc --noEmit",
"lint": "eslint .",

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should: unused imports are only warnings here, so eslint . exits 0 when someone adds back the onMounted/watchEffect this PR removes (I tried). --max-warnings 0 fails on that and passes on this branch.

Suggested change
"lint": "eslint .",
"lint": "eslint . --max-warnings 0",

Unused imports are only warnings, so plain eslint exited 0 on them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@PhilReinking PhilReinking left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK at b664228, CI green. The lint should is fixed.

Checked beyond the PR text: merged with current main (0d2da08, with the Skeleton change), lint passes with --max-warnings 0, and the 10 tests and the build pass. Re-adding the unused imports in MenuContainer.vue now fails lint.

@PhilReinking
PhilReinking merged commit 2f64d29 into main Oct 11, 2026
1 check passed
@PhilReinking
PhilReinking deleted the chore/bits-213-eslint-vue-cli branch October 11, 2026 16:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant