chore(deps): update dependency vite to v8#1046
Conversation
dbd0030 to
d812575
Compare
d812575 to
8c635f2
Compare
There was a problem hiding this comment.
Summary
This PR updates the Vite dependency from v7.3.2 to v8.0.0 in the dashboard package. Vite 8 represents a significant architectural shift, replacing esbuild and Rollup with Rolldown and Oxc for JavaScript transformation and bundling.
Verdict: Needs changes - There are compatibility concerns that need to be addressed before this upgrade can be safely merged.
Research notes
I consulted the official Vite 8 Migration Guide and Breaking Changes documentation. Key findings:
-
Rolldown replaces Rollup: Vite 8 now uses Rolldown instead of Rollup for bundling. The
build.rollupOptionsconfig is deprecated (though still supported via backward compatibility layer). -
esbuild is now optional: Vite 8 no longer directly uses esbuild - it uses Oxc for JavaScript transforms and minification. If any plugins rely on
transformWithEsbuild, esbuild must be installed as a devDependency. -
manualChunksdeprecation: The object form ofoutput.manualChunksis removed; the function form is deprecated in favor of Rolldown'scodeSplittingoption. -
CommonJS interop changes: Vite 8 implements consistent CommonJS interop that may break existing imports from CJS modules.
Suggested next steps
-
Blocking: Address the pnpm override for
rollup: npm:@rollup/wasm-node- this override is still inpackage.jsonbut Vite 8 no longer uses Rollup directly. Either remove it if no longer needed, or verify which dependencies still require it. -
Blocking: Update
vite.config.tsto migrate frombuild.rollupOptions.output.manualChunksto Rolldown'scodeSplittingAPI, as the current configuration uses the deprecated object form. -
Non-blocking: Consider migrating from the deprecated
build.rollupOptionstobuild.rolldownOptionsto future-proof the configuration. -
Non-blocking: Test the build thoroughly, especially checking for any CommonJS module import issues due to the new consistent CJS interop behavior.
General findings
- The lockfile shows the override section was removed (
overrides: rollup: npm:@rollup/wasm-node...), but the sourcepackage.jsonstill contains this override. This inconsistency should be resolved. - The
rollup-plugin-visualizerplugin is still being used. According to the lockfile, it now accepts bothrolldownandrollupas optional peer dependencies, so this should work. - Node.js engine requirement
^20.19.0 || >=22.12.0in package.json aligns with Vite 8's requirements. - The
@tailwindcss/viteand@vitejs/plugin-reactplugins have been updated to versions compatible with Vite 8.
General findings (auto-demoted from inline due to pre-validation)
- Blocking
dashboard/package.json:104— This pnpm override forrollupmay no longer be necessary or correctly targeted in Vite 8.- (demoted: line 104 (side=RIGHT) is not part of any diff hunk in dashboard/package.json)
- Blocking
dashboard/vite.config.ts:94— Using deprecatedbuild.rollupOptionsconfiguration. Vite 8 deprecated this in favor ofbuild.rolldownOptions.- (demoted: path "dashboard/vite.config.ts" is not in the PR diff)
| autoInstallPeers: true | ||
| excludeLinksFromLockfile: false | ||
|
|
||
| overrides: |
There was a problem hiding this comment.
Non-blocking: The pnpm overrides section was removed from the lockfile.
Why it matters: This indicates that pnpm regenerated the lockfile without applying the rollup: npm:@rollup/wasm-node override. This is expected behavior since Vite 8 no longer directly depends on Rollup. However, the mismatch between package.json (which still has the override) and the lockfile (which doesn't) should be reconciled.
Suggested fix: After addressing the Blocking comment on dashboard/package.json line 104, run pnpm install to regenerate a consistent lockfile.
8c635f2 to
4f9918e
Compare
There was a problem hiding this comment.
Summary
This PR updates Vite from v7.3.2 to v8.0.0 (resolved to 8.0.12) along with corresponding dependency updates in the lockfile. This is a major version upgrade that introduces Rolldown as the default bundler, replacing esbuild/Rollup.
Verdict: BLOCKED - This PR cannot be merged as-is because the vite.config.ts uses build.rollupOptions.output.manualChunks with the object form, which has been removed in Vite 8 and will cause build failures.
Research notes
I consulted the following authoritative sources:
-
Vite 8 Announcement - Confirms Rolldown replaces Rollup/esbuild, install size increases ~15MB
-
Vite 8 Migration Guide - Documents all breaking changes including:
build.rollupOptions.output.manualChunksobject form is removed (function form deprecated)build.rollupOptionsrenamed tobuild.rolldownOptions- New
output.codeSplittingAPI replacesmanualChunks
-
Rolldown Manual Code Splitting docs - Shows the new
codeSplitting.groupsAPI withtestpatterns -
@vitejs/plugin-react v6 Release Notes - Babel removed, but v5 (currently pinned) still works with Vite 8
Suggested next steps
- Blocking: Migrate
vite.config.tsfrommanualChunksto the newcodeSplittingAPI (see inline comment) - Non-blocking: Decide whether to keep or remove pnpm overrides in
package.json- they're currently defined but the lockfile overrides section was removed - Recommended: Consider upgrading
@vitejs/plugin-reactto v6 to benefit from smaller install size (Babel removed) - Testing: Run full build pipeline (
pnpm build) to verify production builds work correctly with Rolldown
General findings
pnpm overrides inconsistency
The package.json still contains:
"pnpm": {
"overrides": {
"rollup": "npm:@rollup/wasm-node",
"lodash": "^4.18.0",
"mdast-util-to-hast": "^13.2.1"
}
}But the lockfile's top-level overrides section was removed by this PR. The overrides may still apply via the pnpm key in package.json, but this should be verified. The original reason for these overrides should be reviewed to determine if they're still needed with Vite 8's new architecture.
Install size impact
Per Vite team documentation, Vite 8 adds ~15MB to install size:
- ~10MB from lightningcss (now a normal dependency)
- ~5MB from Rolldown binary
This is acceptable for production but worth noting for CI/CD environments.
General findings (auto-demoted from inline due to pre-validation)
- Blocking
dashboard/vite.config.ts:94—build.rollupOptionsis deprecated and the nestedmanualChunksobject form is removed in Vite 8.- (demoted: path "dashboard/vite.config.ts" is not in the PR diff)
- Non-blocking
dashboard/package.json:103— Review whether these pnpm overrides are still necessary with Vite 8.- (demoted: line 103 (side=RIGHT) is not part of any diff hunk in dashboard/package.json)
| autoInstallPeers: true | ||
| excludeLinksFromLockfile: false | ||
|
|
||
| overrides: |
There was a problem hiding this comment.
Non-blocking: The pnpm overrides section was removed from the lockfile.
Why it matters: This change removes the previous overrides for rollup, lodash, and mdast-util-to-hast. Combined with the overrides still present in package.json, this creates an inconsistent state. The overrides in package.json should take precedence, but this should be verified by running pnpm install after merge to ensure the lockfile regenerates correctly.
Suggested fix: After merging, run pnpm install to regenerate the lockfile with consistent override handling. Verify the resulting lockfile has the expected overrides applied.
82dcb6c to
fe30410
Compare
There was a problem hiding this comment.
Summary
This PR updates the dashboard from Vite 7.3.2 to Vite 8.0.0, which is a major architectural change replacing the dual-bundler approach (esbuild + Rollup) with Rolldown as the unified Rust-based bundler. The lockfile shows extensive changes with new Rolldown-related dependencies and removal of the Rollup WASM override.
Verdict: Needs changes before merging - There's a breaking configuration change in vite.config.ts that must be addressed, plus a transitive dependency security issue to investigate.
Research notes
Fetched the official Vite 8 announcement and migration guide:
Key learnings:
- Vite 8 uses Rolldown instead of Rollup for production builds and Oxc instead of esbuild for transforms
build.rollupOptions.output.manualChunks(object form) is not supported, function form is deprecated - should usebuild.rolldownOptions.output.codeSplittinginsteadbuild.rollupOptionsis deprecated in favor ofbuild.rolldownOptions- Lightning CSS is now used for CSS minification by default
- Node.js requirement remains
^20.19.0 || >=22.12.0(already satisfied by currentenginesfield)
Also discovered via lockfile: @ungap/structured-clone@1.3.0 has a known security vulnerability (CWE-502: Deserialization of Untrusted Data) - should update to 1.3.1+
Suggested next steps
- Blocking: Migrate
build.rollupOptions.output.manualChunksto Rolldown'scodeSplittingAPI invite.config.ts - Non-blocking: Investigate the
@ungap/structured-clone@1.3.0security advisory and update if possible - Non-blocking: Verify whether the removed pnpm overrides (
lodash,mdast-util-to-hast) are still needed for security or if transitive deps now include the fixes - Run full frontend test suite after making changes to ensure build output is functionally equivalent
General findings
Architecture Change Impact
This is not a routine minor version bump - it's the most significant architectural change since Vite 2. The migration from Rollup to Rolldown affects:
- Build pipeline (different bundler semantics)
- Plugin compatibility (though most Vite plugins work out-of-the-box per docs)
- Code splitting strategy (
manualChunks→codeSplitting) - CSS minification (now Lightning CSS by default, may affect bundle size)
- JavaScript minification (now Oxc instead of esbuild)
The install size increases by ~15MB (~10MB from lightningcss becoming a normal dependency, ~5MB from Rolldown binary).
CommonJS Interop Change
Vite 8 implements consistent CommonJS interop that may affect imports of CJS modules. The default import behavior changed - teams should test any CJS dependency imports during QA.
General findings (auto-demoted from inline due to pre-validation)
- Blocking
dashboard/vite.config.ts:94— Thisbuild.rollupOptionsconfiguration uses deprecated Rollup-specific APIs that are incompatible with Vite 8's Rolldown-based architecture.- (demoted: path "dashboard/vite.config.ts" is not in the PR diff)
- Non-blocking
dashboard/pnpm-lock.yaml:1883— This dependency version has a known security vulnerability.- (demoted: code self-check failed at dashboard/pnpm-lock.yaml:1883: diff has ``, model claimed
'@ungap/structured-clone@1.3.0':)
- (demoted: code self-check failed at dashboard/pnpm-lock.yaml:1883: diff has ``, model claimed
| autoInstallPeers: true | ||
| excludeLinksFromLockfile: false | ||
|
|
||
| overrides: |
There was a problem hiding this comment.
Non-blocking: The pnpm overrides section was removed, which includes security patches for lodash and mdast-util-to-hast.
Why it matters: The original overrides included:
rollup: npm:@rollup/wasm-node- No longer needed since Rolldown replaces Rollup ✓lodash: ^4.18.0- Security patch for prototype pollution vulnerabilitiesmdast-util-to-hast: ^13.2.1- Likely a security or bug fix
Removing the lodash and mdast-util-to-hast overrides assumes the new dependency tree includes patched versions. This should be verified.
Suggested fix:
- Check if the current transitive
lodashversion satisfies^4.18.0usingpnpm why lodash - If not, add back the security overrides:
"pnpm": {
"overrides": {
"lodash": "^4.18.0",
"mdast-util-to-hast": "^13.2.1"
}
}- Alternatively, run a security audit (
pnpm auditornpm audit) to identify any remaining vulnerabilities
There was a problem hiding this comment.
Summary
This PR updates Vite from v7.3.2 to v8.0.0, which is a major version upgrade that introduces Rolldown as the primary bundler instead of esbuild/Rollup. The dependency update itself is straightforward, but there are several configuration changes needed to fully align with Vite 8's new architecture.
Verdict: Needs changes before merging - the vite.config.ts requires updates to use the new Rolldown-based configuration options.
Research notes
Based on the Vite 8 announcement and Migration Guide:
- Vite 8 uses Rolldown (Rust-based) instead of esbuild + Rollup for bundling
build.rollupOptionsis deprecated in favor ofbuild.rolldownOptions- The object form of
output.manualChunksis no longer supported - Rolldown usescodeSplittinginstead @vitejs/plugin-reactv6 is available with Oxc-based transforms (smaller install size, faster builds)- Node.js 20.19+ or 22.12+ is required (already satisfied by existing engines field)
- CommonJS interop behavior has changed to be more consistent
Suggested next steps
- Blocking: Update
vite.config.tsto usebuild.rolldownOptionsinstead ofbuild.rollupOptions - Blocking: Migrate the
manualChunksconfiguration to Rolldown'scodeSplittingAPI - Non-blocking: Consider updating
@vitejs/plugin-reactto v6 for Oxc-based transforms - Non-blocking: Review pnpm overrides - either remove from package.json if no longer needed, or investigate why they were dropped from lockfile
- Test the build thoroughly to ensure no CJS interop issues with dependencies
General findings
- The lodash override (^4.18.0) is no longer needed as the lockfile now has 4.18.1
- The mdast-util-to-hast override (^13.2.1) is satisfied as the lockfile has 13.2.1
- The rollup WASM override removal is intentional since Vite 8 uses Rolldown
- The
rollup-plugin-visualizerplugin still works but now receives both rolldown and rollup parameters
General findings (auto-demoted from inline due to pre-validation)
- Blocking
dashboard/vite.config.ts:94— Thebuild.rollupOptionsoption is deprecated in Vite 8 and renamed tobuild.rolldownOptions.- (demoted: path "dashboard/vite.config.ts" is not in the PR diff)
- Blocking
dashboard/vite.config.ts:96— The object form ofoutput.manualChunksis no longer supported in Vite 8's Rolldown-based bundler.- (demoted: path "dashboard/vite.config.ts" is not in the PR diff)
- Non-blocking
dashboard/package.json:103— The pnpm overrides are still present in package.json but were removed from pnpm-lock.yaml during regeneration.- (demoted: line 103 (side=RIGHT) is not part of any diff hunk in dashboard/package.json)
| "typescript": "~5.9.2", | ||
| "typescript-eslint": "^8.46.2", | ||
| "vite": "^7.3.2", | ||
| "vite": "^8.0.0", |
There was a problem hiding this comment.
Non-blocking: Consider updating @vitejs/plugin-react to v6 for optimal Vite 8 compatibility.
Why it matters: Vite 8 ships with @vitejs/plugin-react v6 which uses Oxc for React Refresh transform instead of Babel. This results in a smaller installation size and faster builds. However, v5 (current version) still works with Vite 8, so this is optional.
Suggested fix: Update the dependency:
"@vitejs/plugin-react": "^6.0.0"If you need the React Compiler, v6 provides a reactCompilerPreset helper that works with @rolldown/plugin-babel.
fe30410 to
0bc2e91
Compare
There was a problem hiding this comment.
Summary
This PR updates the Vite dependency from v7.3.2 to v8.0.0, a major version upgrade that introduces significant architectural changes including the replacement of esbuild/Rollup with Rolldown/Oxc.
Verdict: Blocked - The existing vite.config.ts configuration uses build.rollupOptions.output.manualChunks which has been removed in Vite 8 and will cause build failures.
Research notes
- Vite 8 Migration Guide - Documents all breaking changes
- Key change: Vite 8 now uses Rolldown instead of Rollup for bundling
- The
manualChunksobject form is completely removed; the function form is deprecated - Migration path: Use Rolldown's
codeSplittingoption instead
Suggested next steps
- Blocker (Required): Migrate
build.rollupOptions.output.manualChunksindashboard/vite.config.tsto use Rolldown'scodeSplittingoption - Verify the build succeeds with Vite 8 after the migration
- Run frontend tests (
just test ts) to ensure no regressions - Consider testing the production build output to verify code splitting behavior is as expected
General findings
Breaking Configuration Change
The current vite.config.ts at lines 93-118 defines:
build: {
rollupOptions: {
output: {
manualChunks: {
"react-core": ["react", "react-dom"],
// ... more chunks
}
}
}
}Per the Vite 8 migration guide:
The object form
output.manualChunksoption is not supported anymore. The function formoutput.manualChunksis deprecated. Rolldown has the more flexiblecodeSplittingoption.
Additionally, build.rollupOptions is deprecated and renamed to build.rolldownOptions. This configuration needs to be migrated before merging.
General findings (auto-demoted from inline due to pre-validation)
- Blocking
dashboard/package.json:91— The Vite 8 upgrade requires migrating thebuild.rollupOptions.output.manualChunksconfiguration invite.config.tsto Rolldown'scodeSplittingoption.- (demoted: code self-check failed at dashboard/package.json:91: diff has
"vite": "^8.0.0",, model claimed"vitest": "^3.2.4")
- (demoted: code self-check failed at dashboard/package.json:91: diff has
0bc2e91 to
8a69760
Compare
There was a problem hiding this comment.
Summary
This PR upgrades Vite from v7.3.2 to v8.0.0, which is a major version bump that introduces significant architectural changes under the hood. The upgrade includes:
- Rolldown integration: Vite 8 now uses Rolldown (Rust-based bundler) instead of esbuild + Rollup for bundling
- Oxc for transformations: JavaScript transforms now use Oxc instead of esbuild
- Lightning CSS for CSS minification: Replaces esbuild for CSS minification
- Updated browser target defaults: Aligned with Baseline Widely Available feature sets as of 2026-01-01
The pnpm lockfile has been regenerated with the new dependency tree. However, there's an inconsistency between package.json and pnpm-lock.yaml regarding pnpm overrides that needs attention.
Verdict: Needs changes - the pnpm overrides inconsistency should be resolved before merging.
Research notes
- Vite 8 Migration Guide: Documents the shift to Rolldown, Oxc, and Lightning CSS, along with breaking changes and deprecation notices
- Rolldown Documentation: Rust-based bundler with Rollup-compatible API and esbuild feature parity
- Vite 8 requires Node.js
^20.19.0 || >=22.12.0, which aligns with the currentenginesspecification in package.json - The CI workflow uses Node 24, which is compatible
Suggested next steps
- Blocking: Resolve the pnpm overrides inconsistency - either remove the overrides from
package.jsonif they're no longer needed with Vite 8, or regenerate the lockfile with the overrides properly applied - Non-blocking: Test the build (
pnpm run build) and dev server (pnpm run dev) to ensure Rolldown doesn't introduce any regressions with the current codebase - Non-blocking: Verify that the
rollup-plugin-visualizerplugin still works correctly with Rolldown (it appears to support both rolldown and rollup based on the lockfile)
General findings
pnpm Overrides Inconsistency
The package.json still contains pnpm overrides:
"pnpm": {
"overrides": {
"rollup": "npm:@rollup/wasm-node",
"lodash": "^4.18.0",
"mdast-util-to-hast": "^13.2.1"
}
}However, the pnpm-lock.yaml has the overrides: section completely removed. This means:
-
rollup: npm:@rollup/wasm-node: The lockfile now uses nativerollup@4.60.3instead of the WASM version. This could cause issues on platforms where native Rollup binaries aren't available (though Vite 8 primarily uses Rolldown now, so this may be less critical). -
lodash: ^4.18.0andmdast-util-to-hast: ^13.2.1: These security-related overrides appear to be satisfied through normal dependency resolution (lodash@4.18.1 and mdast-util-to-hast@13.2.1 are installed), but the explicit override protection is gone.
Recommendation: Either:
- Remove the overrides from
package.jsonif they're truly unnecessary with Vite 8's new architecture - Or run
pnpm installto regenerate the lockfile with the overrides properly applied
Rolldown Compatibility
The rollup-plugin-visualizer in vite.config.ts now resolves to version 7.0.1 with support for both rolldown and rollup (rolldown@1.0.0)(rollup@4.60.3)). This should work, but should be tested to ensure bundle visualization still functions correctly.
The @tailwindcss/vite and @vitejs/plugin-react plugins have been updated to their versions compatible with Vite 8.
General findings (auto-demoted from inline due to pre-validation)
- Blocking
dashboard/package.json:103— pnpm overrides inpackage.jsonare not reflected inpnpm-lock.yaml.- (demoted: line 103 (side=RIGHT) is not part of any diff hunk in dashboard/package.json)
| autoInstallPeers: true | ||
| excludeLinksFromLockfile: false | ||
|
|
||
| overrides: |
There was a problem hiding this comment.
Non-blocking: The overrides: section was removed from the lockfile.
Why it matters: This removal corresponds to the inconsistency noted in package.json. The overrides for rollup, lodash, and mdast-util-to-hast are no longer explicitly pinned in the lockfile.
As shown in the diff, lines 7-11 containing the overrides block were removed:
overrides:
rollup: npm:@rollup/wasm-node
lodash: ^4.18.0
mdast-util-to-hast: ^13.2.1This should be addressed in conjunction with the package.json overrides to ensure consistency.
Suggested fix: Coordinate with the package.json change - either restore the overrides by regenerating the lockfile, or remove them from package.json as well.
8a69760 to
e87a321
Compare
There was a problem hiding this comment.
Summary
This PR upgrades Vite from v7.3.2 to v8.0.0 (resolving to 8.0.12), which is a major version upgrade introducing significant architectural changes. Vite 8 replaces esbuild and Rollup with Rolldown and Oxc as the underlying build tools. While this brings performance improvements, there are breaking changes that require attention before this can be safely merged.
Verdict: Needs changes - The upgrade introduces a deprecated configuration option that should be addressed.
Research notes
I reviewed the Vite 8 Migration Guide which documents the following key changes:
-
Rolldown replaces Rollup/esbuild: Vite 8 now uses Rolldown for bundling and dependency optimization, and Oxc for JavaScript transforms/minification instead of esbuild.
-
manualChunksis deprecated: The migration guide explicitly states: "The object formoutput.manualChunksoption is not supported anymore. The function formoutput.manualChunksis deprecated. Rolldown has the more flexiblecodeSplittingoption." -
Node.js requirements: Vite 8 requires Node.js
^20.19.0 || >=22.12.0, which matches the currentenginesfield inpackage.json. -
Security advisory: The lock file includes
@ungap/structured-clone@1.3.0which has a deprecation warning: "Potential CWE-502 - Update to 1.3.1 or higher".
Suggested next steps
- Blocking: Migrate
build.rollupOptions.output.manualChunksinvite.config.tsto Rolldown'scodeSplittingAPI (see line 94-117) - Non-blocking: Consider updating pnpm overrides if still needed for security patches (lodash, mdast-util-to-hast were removed)
- Non-blocking: Verify the build output works correctly with the new Rolldown-based bundler
- Nit: The
@ungap/structured-clonetransitive dependency should be updated if possible
General findings
Removed pnpm overrides
The previous pnpm overrides in package.json (lines 103-107) included:
rollup: npm:@rollup/wasm-node- This was likely added to use WASM version of Rollup. With Vite 8 using Rolldown, this override is no longer applicable.lodash: ^4.18.0- Security override for lodash vulnerabilitymdast-util-to-hast: ^13.2.1- Likely a compatibility fix
These overrides were removed in the lock file. If the lodash security fix is still needed, consider re-adding it to the pnpm.overrides section.
General findings (auto-demoted from inline due to pre-validation)
- Blocking
dashboard/vite.config.ts:94— Thebuild.rollupOptionsconfiguration is deprecated in Vite 8 and should be migrated tobuild.rolldownOptions.- (demoted: path "dashboard/vite.config.ts" is not in the PR diff)
- Non-blocking
dashboard/package.json:103— The pnpm overrides section previously contained security patches that were removed.- (demoted: line 103 (side=RIGHT) is not part of any diff hunk in dashboard/package.json)
- Nit
dashboard/pnpm-lock.yaml:1607— This package version has a known deprecation warning.- (demoted: code self-check failed at dashboard/pnpm-lock.yaml:1607: diff has
engines: {node: '>= 20'}, model claimed'@ungap/structured-clone@1.3.0':)
- (demoted: code self-check failed at dashboard/pnpm-lock.yaml:1607: diff has
e87a321 to
5818538
Compare
There was a problem hiding this comment.
Summary
This PR updates Vite from v7.3.2 to v8.0.0, which is a major version upgrade that introduces significant architectural changes. Vite 8 replaces Rollup with Rolldown and esbuild with Oxc for building and transformation. While this is a dependency update generated by Renovate, it requires careful review due to breaking changes.
Verdict: Needs changes before merging - There are configuration issues that need to be addressed.
Research notes
I reviewed the following resources:
- Vite 8 Migration Guide - Documents breaking changes including Rolldown integration, removed features, and deprecated APIs
- Vite 8.0.0 Release Notes - Confirms Rolldown 1.0.0-rc.9 integration
- Vite 8 Changelog - Details all changes in the v8 release
Key learnings:
- Vite 8 uses Rolldown instead of Rollup for bundling
- The object form of
build.rollupOptions.output.manualChunksis removed (function form is deprecated) - The
rollup: npm:@rollup/wasm-nodepnpm override is no longer appropriate and may conflict with internal resolution - Node.js requirement:
^20.19.0 || >=22.12.0(already satisfied in package.json) build.rollupOptionsis renamed tobuild.rolldownOptions(deprecated but still works)
Suggested next steps
- Blocking: Remove or update the
rolluppnpm override inpackage.jsonsince Vite 8 no longer uses Rollup internally - Blocking: Migrate
manualChunksconfiguration from object form to Rolldown'scodeSplittingoption - Non-blocking: Consider renaming
rollupOptionstorolldownOptionsin vite.config.ts (current name is deprecated) - Run full frontend test suite (
just test ts) to verify build and dev server work correctly - Verify production build output and bundle sizes are as expected
General findings
Inconsistent lock file state
The pnpm-lock.yaml had its top-level overrides section removed in this PR, but dashboard/package.json (lines 102-107) still contains:
"pnpm": {
"overrides": {
"rollup": "npm:@rollup/wasm-node",
"lodash": "^4.18.0",
"mdast-util-to-hast": "^13.2.1"
}
}This creates an inconsistency. The rollup override was originally added to use the WASM version of Rollup in Vite 7, but Vite 8 has completely replaced Rollup with Rolldown. Keeping this override could cause unexpected behavior or conflicts with Vite's internal dependency resolution.
The lodash and mdast-util-to-hast overrides appear to be security patches that should be kept, but the rollup override should be removed.
General findings (auto-demoted from inline due to pre-validation)
- Blocking
dashboard/package.json:104— Thisrollupoverride is incompatible with Vite 8.- (demoted: line 104 (side=RIGHT) is not part of any diff hunk in dashboard/package.json)
- Blocking
dashboard/vite.config.ts:96— The object form ofmanualChunksis removed in Vite 8.- (demoted: path "dashboard/vite.config.ts" is not in the PR diff)
- Non-blocking
dashboard/vite.config.ts:94—rollupOptionsis deprecated in favor ofrolldownOptions.- (demoted: path "dashboard/vite.config.ts" is not in the PR diff)
5818538 to
7ec5177
Compare
There was a problem hiding this comment.
Summary
This PR updates the Vite dependency from v7.3.2 to v8.0.0 in the dashboard package. Vite 8 is a major version update that introduces significant architectural changes including switching from esbuild/Rollup to Rolldown/Oxc for bundling and transformation.
Verdict: Needs changes - The upgrade removes important pnpm overrides and uses deprecated manualChunks configuration that will not work correctly in Vite 8.
Research notes
Based on the Vite 8 Migration Guide:
-
Rolldown replaces Rollup: Vite 8 now uses Rolldown instead of Rollup for bundling. The
build.rollupOptionsis renamed tobuild.rolldownOptions(deprecated but still supported via compatibility layer). -
manualChunksdeprecated: The object form ofoutput.manualChunksis not supported anymore, and the function form is deprecated. Rolldown uses a more flexiblecodeSplittingoption instead. -
pnpm overrides removed: The diff shows the
overridessection was removed frompackage.json:"overrides": { "rollup": "npm:@rollup/wasm-node", "lodash": "^4.18.0", "mdast-util-to-hast": "^13.2.1" }
These overrides were likely added for security or compatibility reasons and should be preserved if still needed.
-
Node.js version requirement: Vite 8 requires Node.js
^20.19.0 || >=22.12.0, which is correctly specified in the updatedpackage.jsonengines field. -
CSS minification now uses Lightning CSS: This is already being used in the project (
lightningcss@1.32.0), so this should be compatible.
Suggested next steps
-
Add back the pnpm overrides in
dashboard/package.jsonif they are still needed for security patches or compatibility. -
Migrate
manualChunksto Rolldown'scodeSplittinginvite.config.ts. The current configuration at lines 94-117 uses the object form which is no longer supported. -
Test the build thoroughly - Run
pnpm buildand verify the bundle works correctly, especially checking that code splitting still functions as expected. -
Update
rollup-plugin-visualizerusage - This plugin now supports both Rolldown and Rollup, but verify it produces correct output with the new bundler.
General findings
- The lockfile changes show many new platform-specific optional dependencies for Rolldown bindings, which is expected.
- The
@rollup/wasm-nodeoverride was previously used - this may still be needed depending on your deployment environment. - Consider testing in all target environments (Docker, local development, production) before merging.
General findings (auto-demoted from inline due to pre-validation)
- Blocking
dashboard/package.json:102— The entirepnpm.overridessection has been removed in this diff. These overrides were likely added for specific reasons:- (demoted: line 102 (side=LEFT) is not part of any diff hunk in dashboard/package.json)
- Blocking
dashboard/vite.config.ts:96— ThemanualChunksobject-form syntax is no longer supported in Vite 8. According to the Vite 8 Migration Guide:- (demoted: path "dashboard/vite.config.ts" is not in the PR diff)
- Non-blocking
dashboard/vite.config.ts:94— Thebuild.rollupOptionsoption is deprecated in favor ofbuild.rolldownOptionsin Vite 8. While there's a compatibility layer that converts the old format automatically, you should migrate to the new naming convention.- (demoted: path "dashboard/vite.config.ts" is not in the PR diff)
This PR contains the following updates:
^7.3.2→^8.0.0Release Notes
vitejs/vite (vite)
v8.0.13Compare Source
Features
onEnd(#22357) (47071ce)Bug Fixes
write=false(#22328) (158e8ae)name/originalFileNamein syntheticassetFileNamescall (#22439) (8e59c97)isBundledper environment (#22257) (a576326)Miscellaneous Chores
v8.0.12Compare Source
Features
Bug Fixes
rolldownOptionsinstead of deprecatedrollupOptionsin messages (#22400) (b675c7b)build.targetto worker bundle (#22404) (3c93fde)Miscellaneous Chores
v8.0.11Compare Source
Features
Bug Fixes
Documentation
Miscellaneous Chores
Code Refactoring
Tests
v8.0.10Compare Source
Features
Bug Fixes
hmrClient.logger.debugandhmrClient.logger.errorlooked different from other HMR logs (#22147) (a4d828f).css?inline(#22292) (83f0a78)Code Refactoring
v8.0.9Compare Source
Features
Bug Fixes
watchChangehook (#22188) (fc08bda)?rawimports (#22148) (3ec9cda)Documentation
Miscellaneous Chores
v8.0.8Compare Source
Features
Bug Fixes
dns.getDefaultResultOrdertemporary (#22202) (15f1c15)v8.0.7Compare Source
Bug Fixes
v8.0.6Compare Source
Features
Bug Fixes
Performance Improvements
getLocalhostAddressIfDiffersFromDNSwhen DNS order isverbatim(#22151) (56ec256)Miscellaneous Chores
v8.0.5Compare Source
Bug Fixes
server.fsafter stripping query as well (#22160) (a9a3df2)v8.0.4Compare Source
Features
Bug Fixes
hasBothRollupOptionsAndRolldownOptionsshould returnfalsefor proxy case (#22043) (99897d2)vite/modulepreload-polyfill(#22126) (17330d2)#(#22038) (3460fc5)Documentation
environment.fetchModuledocumentation (#22035) (54229e7)Miscellaneous Chores
Code Refactoring
v8.0.3Compare Source
Features
Bug Fixes
metaidentifier insideimport.metawhen a binding namedmetaexists (#22019) (cff5f0c)Miscellaneous Chores
Tests
getCssFilesForChunk(#22016) (43fbbf9)v8.0.2Compare Source
Features
Bug Fixes
Miscellaneous Chores
v8.0.1Compare Source
Features
Bug Fixes
inlineConstoptimization (#21865) (6d97142)build.target: 'es6'(#21933) (5fcce46)_createServer(#21810) (40bc729)+symbol in package subpath exports during dep optimization (#21886) (86db93d)no-corsrequest block error (#21902) (5ba688b)require(json)result should not be wrapped (#21847) (0672fd2)Miscellaneous Chores
@vitejs/devtoolsversion to 0.1+ (#21925) (12932f5)v8.0.0Compare Source
Features
vite-tsconfig-pathsplugin is detected (#21781) (ada493e)Bug Fixes
v7.3.3Compare Source
Please refer to CHANGELOG.md for details.
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.