Repository navigation
feat(bolt-vite-react-ts): upgrade to vite 8 - #132
Draft
sheepsteak wants to merge 1 commit into
Draft
sheepsteak wants to merge 1 commit into
sheepsteak wants to merge 1 commit into
Conversation
Bump vite to ^8.3.3 and @vitejs/plugin-react to ^6.1.2 and regenerate the lockfile. Make the build test tolerant of `-` in Vite's base64url hashes and of readdir ordering.
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
bolt-vite-react-tsis still on Vite 5 (vite ^5.4.2,@vitejs/plugin-react ^4.3.1), whilebolt-slidesmoved to Vite 8 in #121. The previous attempt (#120) bundled Vite 8 with React 19, Tailwind 4, TypeScript 6, and removing ESLint, and was reverted in #123.Solution
Upgrade only the build tooling:
viteto^8.3.3and@vitejs/plugin-reactto^6.1.2(the v6 line targets Vite 8). React 18, Tailwind 3 with PostCSS, ESLint, TypeScript, andvite.config.tsare unchanged. The existingresolve.aliasandoptimizeDeps.excludeoptions still work in Vite 8.Implementation Details
npm cipasses with it. Only the Vite toolchain moved: Babel, esbuild, and Rollup drop out, Rolldown and Lightning CSS come in, andpostcssgoes from 8.4 to 8.5 because Vite 8 requires^8.5.28.removeFileHash: reapplies the fix from feat(bolt-vite-react-ts): modernize toolchain and remove eslint #120. Vite hashes are base64url and can contain-, so the regex now strips from the first-up to the file extension.readdirin the WebContainer returnedindex.jsbeforeindex.css. Older Vite 5 checkouts of the template fail the same way, so the ordering isn't specific to Vite 8..bolt/prompt: unchanged. The Vite 8 note feat(bolt-vite-react-ts): modernize toolchain and remove eslint #120 added was aboutresolve.tsconfigPaths, which this PR doesn't adopt.bolt-*templates:bolt-slidesis already on Vite 8, andbolt-expo(Metro) andbolt-remotion(Webpack) don't use Vite.bolt-qwikstays on Vite 5: Qwik 1.x, including the latest 1.20.2, declaresvite: ">=5 <8", sonpm installfails with ERESOLVE, and even with overrides the client build fails under Rolldown. Vite 8 needs the Qwik 2 migration (@qwik.dev/core, currently 2.0.0-rc.2), which can wait until Qwik 2 is stable.Test plan
npm ci,npm run build,npm run typecheck,tsc --noEmit -p tsconfig.node.json, andnpm run lintpass inbolt-vite-react-ts@/importstest/bolt-vite-react-ts.test.tspasses in Chromium (build in a WebContainer, dev server preview updates on edit)