diff --git a/docs/guide/rolldown.md b/docs/guide/rolldown.md index 0cb15fc639d928..6e3d33c256da98 100644 --- a/docs/guide/rolldown.md +++ b/docs/guide/rolldown.md @@ -2,6 +2,8 @@ Vite is planning to integrate [Rolldown](https://rolldown.rs), a Rust-powered JavaScript bundler, to improve build performance and capabilities. + + ## What is Rolldown? Rolldown is a modern, high-performance JavaScript bundler written in Rust. It's designed as a drop-in replacement for Rollup, aiming to provide significant performance improvements while maintaining compatibility with the existing ecosystem. diff --git a/packages/create-vite/CHANGELOG.md b/packages/create-vite/CHANGELOG.md index 7b2b344029515b..08e8822c39b9ed 100644 --- a/packages/create-vite/CHANGELOG.md +++ b/packages/create-vite/CHANGELOG.md @@ -1,3 +1,10 @@ +## 6.4.1 (2025-04-17) + +* docs(create-vite): update react template README files (#19876) ([2d4c20e](https://github.com/vitejs/vite/commit/2d4c20ebadc35dae7327ffe6cba85cc5c36d579a)), closes [#19876](https://github.com/vitejs/vite/issues/19876) +* fix(create-vite): adding an interactive flag to force interactivity (#19875) ([608457c](https://github.com/vitejs/vite/commit/608457cd03ce593492abfe007e20468387c4c895)), closes [#19875](https://github.com/vitejs/vite/issues/19875) + + + ## 6.4.0 (2025-04-16) * feat(create-vite): add TanStack Router commands (#19573) ([e49a3b5](https://github.com/vitejs/vite/commit/e49a3b523c8894e8e0df766642999a944e0148ef)), closes [#19573](https://github.com/vitejs/vite/issues/19573) diff --git a/packages/create-vite/package.json b/packages/create-vite/package.json index 932f55aa901349..d4667c6a79b965 100644 --- a/packages/create-vite/package.json +++ b/packages/create-vite/package.json @@ -1,6 +1,6 @@ { "name": "create-vite", - "version": "6.4.0", + "version": "6.4.1", "type": "module", "license": "MIT", "author": "Evan You", diff --git a/packages/create-vite/src/index.ts b/packages/create-vite/src/index.ts index 5954faee674be5..a1736e4f219b6e 100755 --- a/packages/create-vite/src/index.ts +++ b/packages/create-vite/src/index.ts @@ -148,7 +148,7 @@ const FRAMEWORKS: Framework[] = [ display: 'TanStack Router ↗', color: cyan, customCommand: - 'npm create -- tsrouter-app@latest TARGET_DIR --framework react', + 'npm create -- tsrouter-app@latest TARGET_DIR --framework react --interactive', }, ], }, @@ -235,7 +235,7 @@ const FRAMEWORKS: Framework[] = [ display: 'TanStack Router ↗', color: cyan, customCommand: - 'npm create -- tsrouter-app@latest TARGET_DIR --framework solid', + 'npm create -- tsrouter-app@latest TARGET_DIR --framework solid --interactive', }, ], }, diff --git a/packages/create-vite/template-lit-ts/package.json b/packages/create-vite/template-lit-ts/package.json index fbf3869b8c58ec..dd1d6392607eb0 100644 --- a/packages/create-vite/template-lit-ts/package.json +++ b/packages/create-vite/template-lit-ts/package.json @@ -13,6 +13,6 @@ }, "devDependencies": { "typescript": "~5.7.2", - "vite": "^6.3.0" + "vite": "^6.3.1" } } diff --git a/packages/create-vite/template-lit/package.json b/packages/create-vite/template-lit/package.json index 84d43d8b291ed8..9d367caa70593c 100644 --- a/packages/create-vite/template-lit/package.json +++ b/packages/create-vite/template-lit/package.json @@ -12,6 +12,6 @@ "lit": "^3.2.1" }, "devDependencies": { - "vite": "^6.3.0" + "vite": "^6.3.1" } } diff --git a/packages/create-vite/template-preact-ts/package.json b/packages/create-vite/template-preact-ts/package.json index 3e3dfee01b11f0..007f4faa05c466 100644 --- a/packages/create-vite/template-preact-ts/package.json +++ b/packages/create-vite/template-preact-ts/package.json @@ -14,6 +14,6 @@ "devDependencies": { "@preact/preset-vite": "^2.10.1", "typescript": "~5.7.2", - "vite": "^6.3.0" + "vite": "^6.3.1" } } diff --git a/packages/create-vite/template-preact/package.json b/packages/create-vite/template-preact/package.json index 2d969d0831ee58..0c250dc45e0d8c 100644 --- a/packages/create-vite/template-preact/package.json +++ b/packages/create-vite/template-preact/package.json @@ -13,6 +13,6 @@ }, "devDependencies": { "@preact/preset-vite": "^2.10.1", - "vite": "^6.3.0" + "vite": "^6.3.1" } } diff --git a/packages/create-vite/template-qwik-ts/package.json b/packages/create-vite/template-qwik-ts/package.json index b3ed6fc86ef192..3a2c72e7871498 100644 --- a/packages/create-vite/template-qwik-ts/package.json +++ b/packages/create-vite/template-qwik-ts/package.json @@ -11,7 +11,7 @@ "devDependencies": { "serve": "^14.2.4", "typescript": "~5.7.2", - "vite": "^6.3.0" + "vite": "^6.3.1" }, "dependencies": { "@builder.io/qwik": "^1.12.1" diff --git a/packages/create-vite/template-qwik/package.json b/packages/create-vite/template-qwik/package.json index 19248239597cae..a0e99142fe72b8 100644 --- a/packages/create-vite/template-qwik/package.json +++ b/packages/create-vite/template-qwik/package.json @@ -10,7 +10,7 @@ }, "devDependencies": { "serve": "^14.2.4", - "vite": "^6.3.0" + "vite": "^6.3.1" }, "dependencies": { "@builder.io/qwik": "^1.12.1" diff --git a/packages/create-vite/template-react-ts/README.md b/packages/create-vite/template-react-ts/README.md index 40ede56ea6e145..da9844432b833b 100644 --- a/packages/create-vite/template-react-ts/README.md +++ b/packages/create-vite/template-react-ts/README.md @@ -4,8 +4,8 @@ This template provides a minimal setup to get React working in Vite with HMR and Currently, two official plugins are available: -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh ## Expanding the ESLint configuration diff --git a/packages/create-vite/template-react-ts/package.json b/packages/create-vite/template-react-ts/package.json index d30b71317ec73b..eacfb388e6d413 100644 --- a/packages/create-vite/template-react-ts/package.json +++ b/packages/create-vite/template-react-ts/package.json @@ -24,6 +24,6 @@ "globals": "^16.0.0", "typescript": "~5.7.2", "typescript-eslint": "^8.26.1", - "vite": "^6.3.0" + "vite": "^6.3.1" } } diff --git a/packages/create-vite/template-react/README.md b/packages/create-vite/template-react/README.md index fd3b758d9c5bdd..7059a962adb013 100644 --- a/packages/create-vite/template-react/README.md +++ b/packages/create-vite/template-react/README.md @@ -4,9 +4,9 @@ This template provides a minimal setup to get React working in Vite with HMR and Currently, two official plugins are available: -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh ## Expanding the ESLint configuration -If you are developing a production application, we recommend using TypeScript and enable type-aware lint rules. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project. +If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project. diff --git a/packages/create-vite/template-react/package.json b/packages/create-vite/template-react/package.json index b84298dd89a965..8a86282905ed1e 100644 --- a/packages/create-vite/template-react/package.json +++ b/packages/create-vite/template-react/package.json @@ -22,6 +22,6 @@ "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.19", "globals": "^16.0.0", - "vite": "^6.3.0" + "vite": "^6.3.1" } } diff --git a/packages/create-vite/template-solid-ts/package.json b/packages/create-vite/template-solid-ts/package.json index d62764b8ecd22f..fbde53d3994923 100644 --- a/packages/create-vite/template-solid-ts/package.json +++ b/packages/create-vite/template-solid-ts/package.json @@ -13,7 +13,7 @@ }, "devDependencies": { "typescript": "~5.7.2", - "vite": "^6.3.0", + "vite": "^6.3.1", "vite-plugin-solid": "^2.11.6" } } diff --git a/packages/create-vite/template-solid/package.json b/packages/create-vite/template-solid/package.json index e37b4f936e766b..f87b5ff031264d 100644 --- a/packages/create-vite/template-solid/package.json +++ b/packages/create-vite/template-solid/package.json @@ -12,7 +12,7 @@ "solid-js": "^1.9.5" }, "devDependencies": { - "vite": "^6.3.0", + "vite": "^6.3.1", "vite-plugin-solid": "^2.11.6" } } diff --git a/packages/create-vite/template-svelte-ts/package.json b/packages/create-vite/template-svelte-ts/package.json index 1191bee2d98126..3b5bcaf120aea0 100644 --- a/packages/create-vite/template-svelte-ts/package.json +++ b/packages/create-vite/template-svelte-ts/package.json @@ -15,6 +15,6 @@ "svelte": "^5.23.1", "svelte-check": "^4.1.5", "typescript": "~5.7.2", - "vite": "^6.3.0" + "vite": "^6.3.1" } } diff --git a/packages/create-vite/template-svelte/package.json b/packages/create-vite/template-svelte/package.json index 613061b6e33332..64c8354f201432 100644 --- a/packages/create-vite/template-svelte/package.json +++ b/packages/create-vite/template-svelte/package.json @@ -11,6 +11,6 @@ "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", "svelte": "^5.23.1", - "vite": "^6.3.0" + "vite": "^6.3.1" } } diff --git a/packages/create-vite/template-vanilla-ts/package.json b/packages/create-vite/template-vanilla-ts/package.json index 15c08d7cdd600c..61b4f2343a124f 100644 --- a/packages/create-vite/template-vanilla-ts/package.json +++ b/packages/create-vite/template-vanilla-ts/package.json @@ -10,6 +10,6 @@ }, "devDependencies": { "typescript": "~5.7.2", - "vite": "^6.3.0" + "vite": "^6.3.1" } } diff --git a/packages/create-vite/template-vanilla/package.json b/packages/create-vite/template-vanilla/package.json index 1075a882fbca32..6247e3cf91f6c3 100644 --- a/packages/create-vite/template-vanilla/package.json +++ b/packages/create-vite/template-vanilla/package.json @@ -9,6 +9,6 @@ "preview": "vite preview" }, "devDependencies": { - "vite": "^6.3.0" + "vite": "^6.3.1" } } diff --git a/packages/create-vite/template-vue-ts/package.json b/packages/create-vite/template-vue-ts/package.json index 1e7ecc2e873f24..15381ec2536a13 100644 --- a/packages/create-vite/template-vue-ts/package.json +++ b/packages/create-vite/template-vue-ts/package.json @@ -15,7 +15,7 @@ "@vitejs/plugin-vue": "^5.2.2", "@vue/tsconfig": "^0.7.0", "typescript": "~5.7.2", - "vite": "^6.3.0", + "vite": "^6.3.1", "vue-tsc": "^2.2.8" } } diff --git a/packages/create-vite/template-vue/package.json b/packages/create-vite/template-vue/package.json index 628d30044a5010..2be6a7aaa0f5b7 100644 --- a/packages/create-vite/template-vue/package.json +++ b/packages/create-vite/template-vue/package.json @@ -13,6 +13,6 @@ }, "devDependencies": { "@vitejs/plugin-vue": "^5.2.2", - "vite": "^6.3.0" + "vite": "^6.3.1" } } diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index d5a71a23a7c627..999217e9d61f7e 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,10 @@ +## 6.3.1 (2025-04-17) + +* fix: avoid using `Promise.allSettled` in preload function (#19805) ([35c7f35](https://github.com/vitejs/vite/commit/35c7f35e2b67f2158ededf2af58ecec53b3f16c5)), closes [#19805](https://github.com/vitejs/vite/issues/19805) +* fix: backward compat for internal plugin `transform` calls (#19878) ([a152b7c](https://github.com/vitejs/vite/commit/a152b7cbac72e05668f8fc23074d531ecebb77a5)), closes [#19878](https://github.com/vitejs/vite/issues/19878) + + + ## 6.3.0 (2025-04-16) * fix(hmr): avoid infinite loop happening with `hot.invalidate` in circular deps (#19870) ([d4ee5e8](https://github.com/vitejs/vite/commit/d4ee5e8655a85f4d6bebc695b063d69406ab53ac)), closes [#19870](https://github.com/vitejs/vite/issues/19870) diff --git a/packages/vite/package.json b/packages/vite/package.json index 23fd5180ba8228..63d0525aa97be0 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "vite", - "version": "6.3.0", + "version": "6.3.1", "type": "module", "license": "MIT", "author": "Evan You", diff --git a/packages/vite/src/node/plugins/css.ts b/packages/vite/src/node/plugins/css.ts index 4a0c5aa926becb..4e1935e5806b56 100644 --- a/packages/vite/src/node/plugins/css.ts +++ b/packages/vite/src/node/plugins/css.ts @@ -512,7 +512,7 @@ export function cssPostPlugin(config: ResolvedConfig): Plugin { return cssBundleName } - return { + const plugin = { name: 'vite:css-post', renderStart() { @@ -1080,7 +1080,14 @@ export function cssPostPlugin(config: ResolvedConfig): Plugin { } } }, - } + } satisfies Plugin + + // backward compat + const handler = plugin.transform.handler + ;(plugin as any).transform = handler + ;(plugin as any).transform.handler = handler + + return plugin } export function cssAnalysisPlugin(config: ResolvedConfig): Plugin { diff --git a/packages/vite/src/node/plugins/importAnalysisBuild.ts b/packages/vite/src/node/plugins/importAnalysisBuild.ts index 338ffd562f86b3..c13e5ed6b9d33c 100644 --- a/packages/vite/src/node/plugins/importAnalysisBuild.ts +++ b/packages/vite/src/node/plugins/importAnalysisBuild.ts @@ -95,7 +95,21 @@ function preload( // in that case fallback to getAttribute const cspNonce = cspNonceMeta?.nonce || cspNonceMeta?.getAttribute('nonce') - promise = Promise.allSettled( + // Promise.allSettled is not supported by Chrome 64-75, Firefox 67-70, Safari 11.1-12.1 + function allSettled( + promises: Array>, + ): Promise[]> { + return Promise.all( + promises.map((p) => + Promise.resolve(p).then( + (value: T) => ({ status: 'fulfilled' as const, value }), + (reason: unknown) => ({ status: 'rejected' as const, reason }), + ), + ), + ) + } + + promise = allSettled( deps.map((dep) => { // @ts-expect-error assetsURL is declared before preload.toString() dep = assetsURL(dep, importerUrl) diff --git a/packages/vite/src/node/plugins/json.ts b/packages/vite/src/node/plugins/json.ts index a516851cb03ace..6c935034deda93 100644 --- a/packages/vite/src/node/plugins/json.ts +++ b/packages/vite/src/node/plugins/json.ts @@ -41,7 +41,7 @@ export function jsonPlugin( options: Required, isBuild: boolean, ): Plugin { - return { + const plugin = { name: 'vite:json', transform: { @@ -119,7 +119,14 @@ export function jsonPlugin( } }, }, - } + } satisfies Plugin + + // backward compat + const handler = plugin.transform.handler + ;(plugin as any).transform = handler + ;(plugin as any).transform.handler = handler + + return plugin } function serializeValue(value: unknown): string { diff --git a/playground/js-sourcemap/__tests__/js-sourcemap.spec.ts b/playground/js-sourcemap/__tests__/js-sourcemap.spec.ts index cf17de4ba2bb15..510b64d65921cb 100644 --- a/playground/js-sourcemap/__tests__/js-sourcemap.spec.ts +++ b/playground/js-sourcemap/__tests__/js-sourcemap.spec.ts @@ -143,7 +143,7 @@ describe.runIf(isBuild)('build tests', () => { { "debugId": "00000000-0000-0000-0000-000000000000", "ignoreList": [], - "mappings": ";+8BAAA,OAAO,2BAAuB,0BAE9B,QAAQ,IAAI,uBAAuB", + "mappings": ";4kCAAA,OAAO,2BAAuB,0BAE9B,QAAQ,IAAI,uBAAuB", "sources": [ "../../after-preload-dynamic.js", ],