Skip to content

Upgrade frontend tooling to Vite 8 and Oxlint#2118

Open
ejsmith wants to merge 3 commits into
mainfrom
vite-native
Open

Upgrade frontend tooling to Vite 8 and Oxlint#2118
ejsmith wants to merge 3 commits into
mainfrom
vite-native

Conversation

@ejsmith

@ejsmith ejsmith commented Feb 17, 2026

Copy link
Copy Markdown
Member

Summary

  • Rebased the branch onto current main at 575b586a2.
  • Upgraded Vite from 7.3.5 to 8.1.5 and @sveltejs/vite-plugin-svelte from 6.2.4 to 7.2.0, adopting Vite 8's stable Rolldown-based build pipeline.
  • Added Oxlint 1.73.0 as a fast syntax and correctness pass for JavaScript, TypeScript, and Svelte <script> blocks.
  • Retained ESLint and eslint-plugin-svelte as the authoritative framework/template linter. eslint-plugin-oxlint disables only rules already covered by Oxlint.
  • Retained Prettier plus the established Svelte and Tailwind plugins for formatting and existing editor integration. Oxfmt and type-aware oxlint-tsgolint are intentionally not included while their Svelte and TypeScript 7 integrations continue to mature.
  • Refreshed the frontend lockfile within the existing declared version ranges.

Measured impact

Benchmarks used isolated main and PR snapshots with identical application source:

  • npm run build averaged 20.83 seconds on Vite 7 and 9.96 seconds on Vite 8 across three runs each — a 52.2% faster production build (about 2.1x).
  • npm audit improves from 17 findings on the base branch (8 high, 1 moderate, 8 low) to 7 low-only transitive findings, eliminating all high and moderate findings.

Compatibility

  • Vite 8 requires Node 20.19+, 22.12+, or 24+. Exceptionless frontend CI already uses Node 24.
  • No backend, public API, persisted-data, WebSocket, or application behavior changes.
  • Prettier and ESLint remain compatible with the repository's current VS Code recommendations and Svelte workflow.
  • No breaking Exceptionless contracts.

Dependency review

The selected package versions satisfy the repository's seven-day minimum release-age policy. Oxlint is adopted incrementally rather than replacing Svelte-aware ESLint coverage.

Verification

  • npm ci
  • npm run validate — Prettier, Svelte diagnostics, syntax-only Oxlint, and ESLint passed
  • npm run build — Vite 8.1.5 production client and SSR build passed
  • npm run test:unit — 23 files, 298 tests passed after the final rebase
  • npm run build-storybook — passed
  • npm audit — 7 low, 0 moderate, 0 high, 0 critical

@ejsmith

ejsmith commented Mar 16, 2026

Copy link
Copy Markdown
Member Author

@copilot update this PR now that vite 8 final is out. Update any deps to latest versions. Get the build working.

Copilot AI commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

@ejsmith I've opened a new pull request, #2152, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI review requested due to automatic review settings March 19, 2026 16:10
@CLAassistant

CLAassistant commented Mar 19, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the ClientApp frontend toolchain to incorporate Oxlint/Oxfmt alongside ESLint/Prettier, and updates Vite-related dependencies/config to use newer native tooling.

Changes:

  • Added Oxlint/Oxfmt configuration and wired them into npm run lint / npm run format.
  • Updated ESLint flat config to integrate eslint-plugin-oxlint and avoid overlapping rules.
  • Updated Vite config to run vite-plugin-oxlint and refreshed frontend dependencies (including Vite).

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/Exceptionless.Web/ClientApp/vite.config.ts Adds vite-plugin-oxlint to Vite plugins.
src/Exceptionless.Web/ClientApp/src/routes/(auth)/login/+page.svelte Formatting changes in the password label markup.
src/Exceptionless.Web/ClientApp/src/lib/features/auth/schemas.ts Reformats schema definition for readability.
src/Exceptionless.Web/ClientApp/package.json Adds Oxlint/Oxfmt scripts, adjusts Prettier scope to Svelte, and updates dependencies.
src/Exceptionless.Web/ClientApp/eslint.config.js Integrates eslint-plugin-oxlint, disables a Svelte false-positive rule, and loads Oxlint config.
src/Exceptionless.Web/ClientApp/.oxlintrc.json New Oxlint configuration (plugins, rules, ignores).
src/Exceptionless.Web/ClientApp/.oxfmtrc.json New Oxfmt configuration (style + EOL).
src/Exceptionless.Web/ClientApp/.npmrc Enables legacy-peer-deps.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread src/Exceptionless.Web/ClientApp/src/routes/(auth)/login/+page.svelte Outdated
Comment thread src/Exceptionless.Web/ClientApp/.oxfmtrc.json Outdated
@ejsmith

ejsmith commented Mar 19, 2026

Copy link
Copy Markdown
Member Author

@copilot can you rebase this PR

Copilot AI commented Mar 19, 2026

Copy link
Copy Markdown
Contributor

@ejsmith I've opened a new pull request, #2163, to work on those changes. Once the pull request is ready, I'll request review from you.

Comment thread src/Exceptionless.Web/Controllers/AdminController.cs Dismissed
@niemyjski

Copy link
Copy Markdown
Member

Looks like we need to rebase this again

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 235 out of 240 changed files in this pull request and generated 3 comments.

Comment thread src/Exceptionless.Core/Serialization/JsonSerializerOptionsExtensions.cs Outdated
Comment thread src/Exceptionless.Core/Services/StackService.cs
Comment thread src/Exceptionless.Core/Models/Messaging/ExtendedEntityChanged.cs
@ejsmith ejsmith changed the title Convert to vite native tooling Modernize frontend tooling with Vite 8 and Oxc Jul 24, 2026
@ejsmith ejsmith changed the title Modernize frontend tooling with Vite 8 and Oxc Upgrade frontend tooling to Vite 8 and Oxlint Jul 24, 2026
@github-actions

Copy link
Copy Markdown

Code Coverage

Package Line Rate Branch Rate Complexity Health
Exceptionless.Insulation 23% 23% 205
Exceptionless.Core 73% 65% 9497
Exceptionless.AppHost 38% 40% 139
Exceptionless.Web 84% 67% 6898
Summary 76% (22501 / 29436) 65% (10328 / 15822) 16739

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.

5 participants