From 2716e1e1f992d89c18b7d64a3435ba671ff711fa Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Fri, 7 Mar 2025 17:33:15 +0900 Subject: [PATCH 001/102] chore: add rolldown as dependency --- packages/vite/package.json | 1 + pnpm-lock.yaml | 157 +++++++++++++++++++++++++++++++++++++ 2 files changed, 158 insertions(+) diff --git a/packages/vite/package.json b/packages/vite/package.json index 7fe9f39f377768..429d3b37e2f04a 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -88,6 +88,7 @@ "esbuild": "^0.25.0", "picomatch": "^4.0.2", "postcss": "^8.5.3", + "rolldown": "1.0.0-beta.7-commit.7452fa0", "rollup": "^4.34.9", "tinyglobby": "^0.2.12" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fce4b114c66783..d322d4475fae18 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -232,6 +232,9 @@ importers: postcss: specifier: ^8.5.3 version: 8.5.3 + rolldown: + specifier: 1.0.0-beta.7-commit.7452fa0 + version: 1.0.0-beta.7-commit.7452fa0(typescript@5.7.3) rollup: specifier: ^4.34.9 version: 4.34.9 @@ -2812,6 +2815,9 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@oxc-project/types@0.61.2': + resolution: {integrity: sha512-rfuwJwvwn9MRthHNXlSo9Eka/u7gC0MhnWAoX3BhE1+rwPOl22nq0K0Y997Hof0tHCOuD7H3/Z8HTfCVhB4c5Q==} + '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} engines: {node: '>= 10.0.0'} @@ -2909,6 +2915,66 @@ packages: resolution: {integrity: sha512-TvCl79Y8v18ZhFGd5mjO1kYPovSBq3+4LVCi5Nfl1JI8fS8i8kXbgQFGwBJRXczim8GlW8c2LMBKTtExYXOy/A==} engines: {node: '>=18'} + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.7452fa0': + resolution: {integrity: sha512-1ONRckAxd2vr6/e6KvC/m3bPFg1lzFzLd3rW5zaj7LvLhP20Fo6t+Mj7t8/N/ENR65jbMS4hXdTPRD3MvaNTjg==} + cpu: [arm64] + os: [darwin] + + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.7452fa0': + resolution: {integrity: sha512-tA3K/yj2MDIKmpMjldEKkS/1k8o8MXIm+bMdLahZmFVRE7ODfQRe3aUaaxTm7wvHG8GKgE4DcqMJTwDeCqAt/g==} + cpu: [x64] + os: [darwin] + + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.7452fa0': + resolution: {integrity: sha512-Ps9e395Gmv3nR+WmOLGnN23Qc5R7GZ619QMnrsZZnrNjqts4pf2DAGoPnTY/dCT/z+rfcN3ku35hWh3HsI9XGA==} + cpu: [x64] + os: [freebsd] + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.7452fa0': + resolution: {integrity: sha512-/RKVSZGQyFpDWI2ksNV7/n2M1bbFvIoS4QvcETU+sMnDfhZQB6vP00dHMFsJS9J+y05XbsMnEgHslrLywFu4Ww==} + cpu: [arm] + os: [linux] + + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.7452fa0': + resolution: {integrity: sha512-J6PeOqrX2QttacikU/CcIG2nlsnR9gDTcUQbwEbS1G/DaPrYEHXujiI4YY5Hmd+Sr1IYXI9i3z/RfzRI9XmcpQ==} + cpu: [arm64] + os: [linux] + + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.7452fa0': + resolution: {integrity: sha512-lMUOKYcdDxpZMvkMbznjkqikPnvo3UIpdEfzEMp2/rOlYyC/2p3Trg3kGjhF4lbfRLbbuPEjLepGf67ot0I8oQ==} + cpu: [arm64] + os: [linux] + + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.7452fa0': + resolution: {integrity: sha512-ydsgeyhu3/AvB+I1/+uQ1+PSEQRmftkvJ1ewoXB0oJTozAKN6Ywx8jnmV8jA1g/IuMDzepR6/ixF0hbyYinWWQ==} + cpu: [x64] + os: [linux] + + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.7452fa0': + resolution: {integrity: sha512-prSpmuIoS6M1KLRd2Fzpz9n6K6K8g8/F5bN15iEpjRZCkCOI24+bVX6fDKbI0frstIMzFVvbGSxmHxt0pyphEA==} + cpu: [x64] + os: [linux] + + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.7452fa0': + resolution: {integrity: sha512-kRFr1jOfL4L627d1Bw/EPst3A2BwP+DV6CH/Myxl88DFzAeOAfQ04hFfCm8lBcRxzfrJNcFAMNrdIKgdUd7ddQ==} + engines: {node: '>=14.21.3'} + cpu: [wasm32] + + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.7452fa0': + resolution: {integrity: sha512-1l+vls3mjcKOxsrnwcwG1fX8/pL7URuZ+d+7WvKaXXIq3Id6HSdtCYuBwkUg3Bdm0mLDk7Qyv1QG3BwTcFahGQ==} + cpu: [arm64] + os: [win32] + + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.7452fa0': + resolution: {integrity: sha512-YJxvaPtH4sl5reLZCvNuqFHCgdsIRGG77LET+xng9CEWGaA1Epx2qcbeAAX8czU82tYrorx5Taxioo3GqvF53w==} + cpu: [ia32] + os: [win32] + + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.7452fa0': + resolution: {integrity: sha512-OZok4v+44zYlSqo5pVyt5xPgruYcaPig9T0ieOh+O7f3BWqlkLI3ZFalznq2zFp4mJS7GtrqOAm6h7sgd+LTOw==} + cpu: [x64] + os: [win32] + '@rollup/plugin-alias@5.1.1': resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} engines: {node: '>=14.0.0'} @@ -3462,6 +3528,11 @@ packages: cpu: [x64] os: [win32] + '@valibot/to-json-schema@1.0.0': + resolution: {integrity: sha512-/9crJgPptVsGCL6X+JPDQyaJwkalSZ/52WuF8DiRUxJgcmpNdzYRfZ+gqMEP8W3CTVfuMWPqqvIgfwJ97f9Etw==} + peerDependencies: + valibot: ^1.0.0 + '@vitejs/longfilename-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@file:playground/optimize-deps/longfilename': resolution: {directory: playground/optimize-deps/longfilename, type: directory} @@ -6579,6 +6650,15 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true + rolldown@1.0.0-beta.7-commit.7452fa0: + resolution: {integrity: sha512-6/poOMpWJUy+MEd7qt6/f5lOOepR7vUXtMuK+J494yVA6jtkyXlCScvLVytpo13AKx+IhW/wt6qpCaZdFasd0g==} + hasBin: true + peerDependencies: + '@oxc-project/runtime': 0.61.2 + peerDependenciesMeta: + '@oxc-project/runtime': + optional: true + rollup-plugin-dts@6.1.1: resolution: {integrity: sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==} engines: {node: '>=16'} @@ -7315,6 +7395,14 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} + valibot@1.0.0: + resolution: {integrity: sha512-1Hc0ihzWxBar6NGeZv7fPLY0QuxFMyxwYR2sF1Blu7Wq7EnremwY2W02tit2ij2VJT8HcSkHAQqmFfl77f73Yw==} + peerDependencies: + typescript: '>=5' + peerDependenciesMeta: + typescript: + optional: true + validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -8704,6 +8792,8 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.0 + '@oxc-project/types@0.61.2': {} + '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -8774,6 +8864,44 @@ snapshots: '@publint/pack@0.1.1': {} + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.7452fa0': + optional: true + + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.7452fa0': + optional: true + + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.7452fa0': + optional: true + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.7452fa0': + optional: true + + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.7452fa0': + optional: true + + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.7452fa0': + optional: true + + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.7452fa0': + optional: true + + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.7452fa0': + optional: true + + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.7452fa0': + dependencies: + '@napi-rs/wasm-runtime': 0.2.7 + optional: true + + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.7452fa0': + optional: true + + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.7452fa0': + optional: true + + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.7452fa0': + optional: true + '@rollup/plugin-alias@5.1.1(rollup@4.34.9)': optionalDependencies: rollup: 4.34.9 @@ -9335,6 +9463,10 @@ snapshots: '@unrs/rspack-resolver-binding-win32-x64-msvc@1.1.2': optional: true + '@valibot/to-json-schema@1.0.0(valibot@1.0.0(typescript@5.7.3))': + dependencies: + valibot: 1.0.0(typescript@5.7.3) + '@vitejs/longfilename-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@file:playground/optimize-deps/longfilename': {} '@vitejs/plugin-vue@5.2.1(vite@packages+vite)(vue@3.5.13(typescript@5.7.3))': @@ -12631,6 +12763,27 @@ snapshots: dependencies: glob: 7.2.3 + rolldown@1.0.0-beta.7-commit.7452fa0(typescript@5.7.3): + dependencies: + '@oxc-project/types': 0.61.2 + '@valibot/to-json-schema': 1.0.0(valibot@1.0.0(typescript@5.7.3)) + valibot: 1.0.0(typescript@5.7.3) + optionalDependencies: + '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.7452fa0 + '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.7452fa0 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.7452fa0 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.7452fa0 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.7452fa0 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.7452fa0 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.7452fa0 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.7452fa0 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.7452fa0 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.7452fa0 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.7452fa0 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.7452fa0 + transitivePeerDependencies: + - typescript + rollup-plugin-dts@6.1.1(rollup@4.34.9)(typescript@5.7.3): dependencies: magic-string: 0.30.17 @@ -13421,6 +13574,10 @@ snapshots: utils-merge@1.0.1: {} + valibot@1.0.0(typescript@5.7.3): + optionalDependencies: + typescript: 5.7.3 + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 From 48c60102705ff8f893828035e7df3bea48ae9363 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Fri, 7 Mar 2025 17:33:43 +0900 Subject: [PATCH 002/102] feat: use rolldown in the dep optimizer Co-authored-by: underfin --- packages/vite/rollup.config.ts | 1 + packages/vite/rollup.dts.config.ts | 1 + packages/vite/src/node/config.ts | 1 + packages/vite/src/node/optimizer/index.ts | 318 ++++----- ...buildDepPlugin.ts => rolldownDepPlugin.ts} | 301 ++++---- packages/vite/src/node/optimizer/scan.ts | 666 ++++++++---------- .../vite/src/node/plugins/importAnalysis.ts | 12 +- playground/optimize-deps/vite.config.js | 27 +- 8 files changed, 641 insertions(+), 686 deletions(-) rename packages/vite/src/node/optimizer/{esbuildDepPlugin.ts => rolldownDepPlugin.ts} (50%) diff --git a/packages/vite/rollup.config.ts b/packages/vite/rollup.config.ts index bec0eabdd65d38..5c21548649169f 100644 --- a/packages/vite/rollup.config.ts +++ b/packages/vite/rollup.config.ts @@ -111,6 +111,7 @@ const nodeConfig = defineConfig({ /^vite\//, 'fsevents', 'rollup/parseAst', + 'rolldown/experimental', /^tsx\//, /^#/, ...Object.keys(pkg.dependencies), diff --git a/packages/vite/rollup.dts.config.ts b/packages/vite/rollup.dts.config.ts index d909755844ac1a..2a1727bc1b3fe3 100644 --- a/packages/vite/rollup.dts.config.ts +++ b/packages/vite/rollup.dts.config.ts @@ -17,6 +17,7 @@ const external = [ /^node:*/, /^vite\//, 'rollup/parseAst', + 'rolldown/experimental', ...Object.keys(pkg.dependencies), ...Object.keys(pkg.peerDependencies), ...Object.keys(pkg.devDependencies), diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index 8921783f3789ce..a1a321c8c3503b 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -723,6 +723,7 @@ export const configDefaults = Object.freeze({ exclude: [], needsInterop: [], // esbuildOptions + rollupOptions: {}, /** @experimental */ extensions: [], /** @deprecated @experimental */ diff --git a/packages/vite/src/node/optimizer/index.ts b/packages/vite/src/node/optimizer/index.ts index 1951c4ce92d86b..63c28eae967ac0 100644 --- a/packages/vite/src/node/optimizer/index.ts +++ b/packages/vite/src/node/optimizer/index.ts @@ -4,12 +4,19 @@ import path from 'node:path' import { promisify } from 'node:util' import { performance } from 'node:perf_hooks' import colors from 'picocolors' -import type { BuildContext, BuildOptions as EsbuildBuildOptions } from 'esbuild' -import esbuild, { build } from 'esbuild' +import type { BuildOptions as EsbuildBuildOptions } from 'esbuild' import { init, parse } from 'es-module-lexer' import { isDynamicPattern } from 'tinyglobby' +import { + type RolldownOptions, + type RolldownOutput, + type OutputOptions as RolldownOutputOptions, + rolldown, +} from 'rolldown' import type { ResolvedConfig } from '../config' import { + arraify, + asyncFlatten, createDebugger, flattenId, getHash, @@ -21,21 +28,20 @@ import { tryStatSync, unique, } from '../utils' -import { - defaultEsbuildSupported, - transformWithEsbuild, -} from '../plugins/esbuild' -import { ESBUILD_MODULES_TARGET, METADATA_FILENAME } from '../constants' +import { transformWithEsbuild } from '../plugins/esbuild' +import { METADATA_FILENAME } from '../constants' import { isWindows } from '../../shared/utils' import type { Environment } from '../environment' -import { esbuildCjsExternalPlugin, esbuildDepPlugin } from './esbuildDepPlugin' import { ScanEnvironment, scanImports } from './scan' import { createOptimizeDepsIncludeResolver, expandGlobIds } from './resolve' +import { + rolldownCjsExternalPlugin, + rolldownDepPlugin, +} from './rolldownDepPlugin' const debug = createDebugger('vite:deps') const jsExtensionRE = /\.js$/i -const jsMapExtensionRE = /\.js\.map$/i export type ExportsData = { hasModuleSyntax: boolean @@ -103,6 +109,12 @@ export interface DepOptimizationConfig { | 'outExtension' | 'metafile' > + rollupOptions?: Omit & { + output?: Omit< + RolldownOutputOptions, + 'format' | 'sourcemap' | 'dir' | 'banner' + > + } /** * List of file extensions that can be optimized. A corresponding esbuild * plugin must exist to handle the specific extension. @@ -201,6 +213,7 @@ export interface OptimizedDepInfo { * data used both to define if interop is needed and when pre-bundling */ exportsData?: Promise + isDynamicEntry?: boolean } export interface DepOptimizationMetadata { @@ -614,7 +627,7 @@ export function runOptimizeDeps( const start = performance.now() - const preparedRun = prepareEsbuildOptimizerRun( + const preparedRun = prepareRolldownOptimizerRun( environment, depsInfo, processingCacheDir, @@ -622,64 +635,49 @@ export function runOptimizeDeps( ) const runResult = preparedRun.then(({ context, idToExports }) => { - function disposeContext() { - return context?.dispose().catch((e) => { - environment.logger.error('Failed to dispose esbuild context', { - error: e, - }) - }) - } if (!context || optimizerContext.cancelled) { - disposeContext() return cancelledResult } return context - .rebuild() + .build() .then((result) => { - const meta = result.metafile! + const depForEntryFileName: Record = {} + for (const dep of Object.values(depsInfo)) { + const entryFileName = flattenId(dep.id) + '.js' + depForEntryFileName[entryFileName] = dep + } - // the paths in `meta.outputs` are relative to `process.cwd()` - const processingCacheDirOutputPath = path.relative( - process.cwd(), - processingCacheDir, - ) + for (const chunk of result.output) { + if (chunk.type !== 'chunk') continue - for (const id in depsInfo) { - const output = esbuildOutputFromId( - meta.outputs, - id, - processingCacheDir, - ) - - const { exportsData, ...info } = depsInfo[id] - addOptimizedDepInfo(metadata, 'optimized', { - ...info, - // We only need to hash the output.imports in to check for stability, but adding the hash - // and file path gives us a unique hash that may be useful for other things in the future - fileHash: getHash( - metadata.hash + - depsInfo[id].file + - JSON.stringify(output.imports), - ), - browserHash: metadata.browserHash, - // After bundling we have more information and can warn the user about legacy packages - // that require manual configuration - needsInterop: needsInterop( - environment, + if (chunk.isEntry) { + const { exportsData, file, id, ...info } = + depForEntryFileName[chunk.fileName] + addOptimizedDepInfo(metadata, 'optimized', { id, - idToExports[id], - output, - ), - }) - } - - for (const o of Object.keys(meta.outputs)) { - if (!jsMapExtensionRE.test(o)) { - const id = path - .relative(processingCacheDirOutputPath, o) - .replace(jsExtensionRE, '') - const file = getOptimizedDepPath(environment, id) + file, + ...info, + // We only need to hash the chunk.imports in to check for stability, but adding the hash + // and file path gives us a unique hash that may be useful for other things in the future + fileHash: getHash( + metadata.hash + file + JSON.stringify(chunk.imports), + ), + browserHash: metadata.browserHash, + // After bundling we have more information and can warn the user about legacy packages + // that require manual configuration + needsInterop: needsInterop( + environment, + id, + idToExports[id], + chunk, + ), + }) + } else { + const id = chunk.fileName.replace(jsExtensionRE, '') + const file = normalizePath( + path.resolve(getDepsCacheDir(environment), chunk.fileName), + ) if ( !findOptimizedDepInfoInRecord( metadata.optimized, @@ -691,27 +689,9 @@ export function runOptimizeDeps( file, needsInterop: false, browserHash: metadata.browserHash, + isDynamicEntry: chunk.isDynamicEntry, }) } - } else { - // workaround Firefox warning by removing blank source map reference - // https://github.com/evanw/esbuild/issues/3945 - const output = meta.outputs[o] - // filter by exact bytes of an empty source map - if (output.bytes === 93) { - const jsMapPath = path.resolve(o) - const jsPath = jsMapPath.slice(0, -4) - if (fs.existsSync(jsPath) && fs.existsSync(jsMapPath)) { - const map = JSON.parse(fs.readFileSync(jsMapPath, 'utf-8')) - if (map.sources.length === 0) { - const js = fs.readFileSync(jsPath, 'utf-8') - fs.writeFileSync( - jsPath, - js.slice(0, js.lastIndexOf('//# sourceMappingURL=')), - ) - } - } - } } } @@ -721,18 +701,14 @@ export function runOptimizeDeps( return successfulResult }) - .catch((e) => { if (e.errors && e.message.includes('The build was canceled')) { - // esbuild logs an error when cancelling, but this is expected so + // an error happens when cancelling, but this is expected so // return an empty result instead return cancelledResult } throw e }) - .finally(() => { - return disposeContext() - }) }) runResult.catch(() => { @@ -743,20 +719,20 @@ export function runOptimizeDeps( async cancel() { optimizerContext.cancelled = true const { context } = await preparedRun - await context?.cancel() + context?.cancel() cleanUp() }, result: runResult, } } -async function prepareEsbuildOptimizerRun( +async function prepareRolldownOptimizerRun( environment: Environment, depsInfo: Record, processingCacheDir: string, optimizerContext: { cancelled: boolean }, ): Promise<{ - context?: BuildContext + context?: { build: () => Promise; cancel: () => void } idToExports: Record }> { // esbuild generates nested directory output with lowest common ancestor base @@ -770,21 +746,19 @@ async function prepareEsbuildOptimizerRun( const { optimizeDeps } = environment.config - const { plugins: pluginsFromConfig = [], ...esbuildOptions } = - optimizeDeps.esbuildOptions ?? {} + const { plugins: pluginsFromConfig = [], ...rollupOptions } = + optimizeDeps.rollupOptions ?? {} + let jsxLoader = false await Promise.all( Object.keys(depsInfo).map(async (id) => { const src = depsInfo[id].src! const exportsData = await (depsInfo[id].exportsData ?? extractExportsData(environment, src)) - if (exportsData.jsxLoader && !esbuildOptions.loader?.['.js']) { + if (exportsData.jsxLoader) { // Ensure that optimization won't fail by defaulting '.js' to the JSX parser. // This is useful for packages such as Gatsby. - esbuildOptions.loader = { - '.js': 'jsx', - ...esbuildOptions.loader, - } + jsxLoader = true } const flatId = flattenId(id) flatIdDeps[flatId] = src @@ -803,7 +777,7 @@ async function prepareEsbuildOptimizerRun( } const platform = - optimizeDeps.esbuildOptions?.platform ?? + optimizeDeps.rollupOptions?.platform ?? // We generally don't want to use platform 'neutral', as esbuild has custom handling // when the platform is 'node' or 'browser' that can't be emulated by using mainFields // and conditions @@ -814,43 +788,57 @@ async function prepareEsbuildOptimizerRun( const external = [...(optimizeDeps.exclude ?? [])] - const plugins = [...pluginsFromConfig] + const plugins = await asyncFlatten(arraify(pluginsFromConfig)) if (external.length) { - plugins.push(esbuildCjsExternalPlugin(external, platform)) + plugins.push(rolldownCjsExternalPlugin(external, platform)) } - plugins.push(esbuildDepPlugin(environment, flatIdDeps, external)) - - const context = await esbuild.context({ - absWorkingDir: process.cwd(), - entryPoints: Object.keys(flatIdDeps), - bundle: true, - platform, - define, - format: 'esm', - // See https://github.com/evanw/esbuild/issues/1921#issuecomment-1152991694 - banner: - platform === 'node' - ? { - js: `import { createRequire } from 'module';const require = createRequire(import.meta.url);`, - } - : undefined, - target: ESBUILD_MODULES_TARGET, - external, - logLevel: 'error', - splitting: true, - sourcemap: true, - outdir: processingCacheDir, - ignoreAnnotations: true, - metafile: true, - plugins, - charset: 'utf8', - ...esbuildOptions, - supported: { - ...defaultEsbuildSupported, - ...esbuildOptions.supported, - }, - }) - return { context, idToExports } + plugins.push(...rolldownDepPlugin(environment, flatIdDeps, external)) + + let canceled = false + async function build() { + const bundle = await rolldown({ + ...rollupOptions, + // TODO: pass target + input: flatIdDeps, + logLevel: 'warn', + plugins, + define, + platform, + resolve: { + extensions: ['.tsx', '.ts', '.jsx', '.js', '.css', '.json'], + ...rollupOptions.resolve, + }, + // TODO: remove this and enable rolldown's CSS support later + moduleTypes: { + '.css': 'js', + ...rollupOptions.moduleTypes, + ...(jsxLoader ? { '.js': 'jsx' } : {}), + }, + }) + if (canceled) { + await bundle.close() + throw new Error('The build was canceled') + } + const result = await bundle.write({ + ...rollupOptions.output, + format: 'esm', + sourcemap: true, + dir: processingCacheDir, + entryFileNames: '[name].js', + banner: + platform === 'node' + ? `import { createRequire } from 'module';const require = createRequire(import.meta.url);` + : undefined, + }) + await bundle.close() + return result + } + + function cancel() { + canceled = true + } + + return { context: { build, cancel }, idToExports } } export async function addManuallyIncludedOptimizeDeps( @@ -1047,19 +1035,23 @@ function stringifyDepsOptimizerMetadata( browserHash, optimized: Object.fromEntries( Object.values(optimized).map( - ({ id, src, file, fileHash, needsInterop }) => [ + ({ id, src, file, fileHash, needsInterop, isDynamicEntry }) => [ id, { src, file, fileHash, needsInterop, + isDynamicEntry, }, ], ), ), chunks: Object.fromEntries( - Object.values(chunks).map(({ id, file }) => [id, { file }]), + Object.values(chunks).map(({ id, file, isDynamicEntry }) => [ + id, + { file, isDynamicEntry }, + ]), ), }, (key: string, value: string) => { @@ -1074,29 +1066,6 @@ function stringifyDepsOptimizerMetadata( ) } -function esbuildOutputFromId( - outputs: Record, - id: string, - cacheDirOutputPath: string, -): any { - const cwd = process.cwd() - const flatId = flattenId(id) + '.js' - const normalizedOutputPath = normalizePath( - path.relative(cwd, path.join(cacheDirOutputPath, flatId)), - ) - const output = outputs[normalizedOutputPath] - if (output) { - return output - } - // If the root dir was symlinked, esbuild could return output keys as `../cwd/` - // Normalize keys to support this case too - for (const [key, value] of Object.entries(outputs)) { - if (normalizePath(path.relative(cwd, key)) === normalizedOutputPath) { - return value - } - } -} - export async function extractExportsData( environment: Environment, filePath: string, @@ -1105,18 +1074,38 @@ export async function extractExportsData( const { optimizeDeps } = environment.config - const esbuildOptions = optimizeDeps.esbuildOptions ?? {} + const rollupOptions = optimizeDeps.rollupOptions ?? {} if (optimizeDeps.extensions?.some((ext) => filePath.endsWith(ext))) { // For custom supported extensions, build the entry file to transform it into JS, // and then parse with es-module-lexer. Note that the `bundle` option is not `true`, // so only the entry file is being transformed. - const result = await build({ - ...esbuildOptions, - entryPoints: [filePath], - write: false, + const { plugins: pluginsFromConfig = [], ...remainingRollupOptions } = + rollupOptions + const plugins = await asyncFlatten(arraify(pluginsFromConfig)) + plugins.unshift({ + name: 'externalize', + resolveId(id, importer) { + if (importer !== undefined) { + return { id, external: true } + } + }, + }) + const build = await rolldown({ + ...remainingRollupOptions, + plugins, + input: [filePath], + // TODO: remove this and enable rolldown's CSS support later + moduleTypes: { + '.css': 'js', + ...remainingRollupOptions.moduleTypes, + }, + }) + const result = await build.generate({ + ...rollupOptions.output, format: 'esm', + sourcemap: false, }) - const [, exports, , hasModuleSyntax] = parse(result.outputFiles[0].text) + const [, exports, , hasModuleSyntax] = parse(result.output[0].code) return { hasModuleSyntax, exports: exports.map((e) => e.n), @@ -1130,14 +1119,17 @@ export async function extractExportsData( try { parseResult = parse(entryContent) } catch { - const loader = esbuildOptions.loader?.[path.extname(filePath)] || 'jsx' + const lang = rollupOptions.moduleTypes?.[path.extname(filePath)] || 'jsx' debug?.( - `Unable to parse: ${filePath}.\n Trying again with a ${loader} transform.`, + `Unable to parse: ${filePath}.\n Trying again with a ${lang} transform.`, ) + if (lang !== 'jsx' && lang !== 'tsx' && lang !== 'ts') { + throw new Error(`Unable to parse : ${filePath}.`) + } const transformed = await transformWithEsbuild( entryContent, filePath, - { loader }, + { loader: lang }, undefined, environment.config, ) diff --git a/packages/vite/src/node/optimizer/esbuildDepPlugin.ts b/packages/vite/src/node/optimizer/rolldownDepPlugin.ts similarity index 50% rename from packages/vite/src/node/optimizer/esbuildDepPlugin.ts rename to packages/vite/src/node/optimizer/rolldownDepPlugin.ts index 7b065cbb0a8ea0..97f07349c6f13a 100644 --- a/packages/vite/src/node/optimizer/esbuildDepPlugin.ts +++ b/packages/vite/src/node/optimizer/rolldownDepPlugin.ts @@ -1,5 +1,5 @@ import path from 'node:path' -import type { ImportKind, Plugin } from 'esbuild' +import type { ImportKind, Plugin, RolldownPlugin } from 'rolldown' import { JS_TYPES_RE, KNOWN_ASSET_TYPES } from '../constants' import type { PackageCache } from '../packages' import { @@ -14,6 +14,7 @@ import { browserExternalId, optionalPeerDepId } from '../plugins/resolve' import { isCSSRequest, isModuleCSSRequest } from '../plugins/css' import type { Environment } from '../environment' import { createBackCompatIdResolver } from '../idResolver' +import { isWindows } from '../../shared/utils' const externalWithConversionNamespace = 'vite:dep-pre-bundle:external-conversion' @@ -47,11 +48,14 @@ const externalTypes = [ ...KNOWN_ASSET_TYPES, ] -export function esbuildDepPlugin( +const optionalPeerDepNamespace = 'optional-peer-dep:' +const browserExternalNamespace = 'browser-external:' + +export function rolldownDepPlugin( environment: Environment, qualified: Record, external: string[], -): Plugin { +): RolldownPlugin[] { const { isProduction } = environment.config const { extensions } = environment.config.optimizeDeps @@ -85,16 +89,16 @@ export function esbuildDepPlugin( const resolve = ( id: string, - importer: string, + importer: string | undefined, kind: ImportKind, resolveDir?: string, ): Promise => { - let _importer: string + let _importer: string | undefined // explicit resolveDir - this is passed only during yarn pnp resolve for // entries if (resolveDir) { _importer = normalizePath(path.join(resolveDir, '*')) - } else { + } else if (importer) { // map importer ids to file paths for correct resolution _importer = importer in qualified ? qualified[importer] : importer } @@ -105,14 +109,12 @@ export function esbuildDepPlugin( const resolveResult = (id: string, resolved: string) => { if (resolved.startsWith(browserExternalId)) { return { - path: id, - namespace: 'browser-external', + id: browserExternalNamespace + id, } } if (resolved.startsWith(optionalPeerDepId)) { return { - path: resolved, - namespace: 'optional-peer-dep', + id: optionalPeerDepNamespace + resolved, } } if (isBuiltin(environment.config.resolve.builtins, resolved)) { @@ -120,37 +122,41 @@ export function esbuildDepPlugin( } if (isExternalUrl(resolved)) { return { - path: resolved, + id: resolved, external: true, } } return { - path: path.resolve(resolved), + id: path.resolve(resolved), } } - return { - name: 'vite:dep-pre-bundle', - setup(build) { - // clear package cache when esbuild is finished - build.onEnd(() => { - esmPackageCache.clear() - cjsPackageCache.clear() - }) + const allExternalTypesReg = new RegExp( + `\\.(` + allExternalTypes.join('|') + `)(\\?.*)?$`, + ) + function resolveEntry(id: string) { + const flatId = flattenId(id) + if (flatId in qualified) { + return { + id: qualified[flatId], + } + } + } + + return [ + { + name: 'vite:dep-pre-bundle-assets', // externalize assets and commonly known non-js file types // See #8459 for more details about this require-import conversion - build.onResolve( - { - filter: new RegExp( - `\\.(` + allExternalTypes.join('|') + `)(\\?.*)?$`, - ), - }, - async ({ path: id, importer, kind }) => { + resolveId: { + filter: { id: allExternalTypesReg }, + async handler(id, importer, options) { + const kind = options.kind // if the prefix exist, it is already converted to `import`, so set `external: true` if (id.startsWith(convertedExternalPrefix)) { return { - path: id.slice(convertedExternalPrefix.length), + id: id.slice(convertedExternalPrefix.length), external: true, } } @@ -162,7 +168,8 @@ export function esbuildDepPlugin( // or package name (e.g. import "some-package.pdf") if (JS_TYPES_RE.test(resolved)) { return { - path: resolved, + // normalize to \\ on windows for esbuild/rolldown behavior difference: https://github.com/sapphi-red-repros/rolldown-esbuild-path-normalization + id: isWindows ? resolved.replaceAll('/', '\\') : resolved, external: false, } } @@ -170,54 +177,55 @@ export function esbuildDepPlugin( if (kind === 'require-call') { // here it is not set to `external: true` to convert `require` to `import` return { - path: resolved, - namespace: externalWithConversionNamespace, + id: externalWithConversionNamespace + resolved, } } return { - path: resolved, + id: resolved, external: true, } } }, - ) - build.onLoad( - { filter: /./, namespace: externalWithConversionNamespace }, - (args) => { + }, + load: { + filter: { + id: new RegExp(`^${externalWithConversionNamespace}`), + }, + handler(id) { + const path = id.slice(externalWithConversionNamespace.length) // import itself with prefix (this is the actual part of require-import conversion) - const modulePath = `"${convertedExternalPrefix}${args.path}"` + const modulePath = `"${convertedExternalPrefix}${path}"` return { - contents: - isCSSRequest(args.path) && !isModuleCSSRequest(args.path) + code: + isCSSRequest(path) && !isModuleCSSRequest(path) ? `import ${modulePath};` : `export { default } from ${modulePath};` + `export * from ${modulePath};`, - loader: 'js', } }, - ) - - function resolveEntry(id: string) { - const flatId = flattenId(id) - if (flatId in qualified) { - return { - path: qualified[flatId], - } - } - } + }, + }, + { + name: 'vite:dep-pre-bundle', + // clear package cache when build is finished + buildEnd() { + esmPackageCache.clear() + cjsPackageCache.clear() + }, + resolveId: { + filter: { id: /^[\w@][^:]/ }, + async handler(id, importer, options) { + const kind = options.kind - build.onResolve( - { filter: /^[\w@][^:]/ }, - async ({ path: id, importer, kind }) => { if (moduleListContains(external, id)) { return { - path: id, + id: id, external: true, } } - // ensure esbuild uses our resolved entries - let entry: { path: string } | undefined + // ensure rolldown uses our resolved entries + let entry: { id: string } | undefined // if this is an entry, return entry namespace resolve result if (!importer) { if ((entry = resolveEntry(id))) return entry @@ -234,114 +242,125 @@ export function esbuildDepPlugin( return resolveResult(id, resolved) } }, - ) - - build.onLoad( - { filter: /.*/, namespace: 'browser-external' }, - ({ path }) => { - if (isProduction) { - return { - contents: 'module.exports = {}', - } - } else { - return { - // Return in CJS to intercept named imports. Use `Object.create` to - // create the Proxy in the prototype to workaround esbuild issue. Why? - // - // In short, esbuild cjs->esm flow: - // 1. Create empty object using `Object.create(Object.getPrototypeOf(module.exports))`. - // 2. Assign props of `module.exports` to the object. - // 3. Return object for ESM use. - // - // If we do `module.exports = new Proxy({}, {})`, step 1 returns empty object, - // step 2 does nothing as there's no props for `module.exports`. The final object - // is just an empty object. - // - // Creating the Proxy in the prototype satisfies step 1 immediately, which means - // the returned object is a Proxy that we can intercept. - // - // Note: Skip keys that are accessed by esbuild and browser devtools. - contents: `\ -module.exports = Object.create(new Proxy({}, { - get(_, key) { - if ( - key !== '__esModule' && - key !== '__proto__' && - key !== 'constructor' && - key !== 'splice' - ) { - console.warn(\`Module "${path}" has been externalized for browser compatibility. Cannot access "${path}.\${key}" in client code. See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.\`) - } - } -}))`, + }, + load: { + filter: { + id: [ + new RegExp(`^${browserExternalNamespace}`), + new RegExp(`^${optionalPeerDepNamespace}`), + ], + }, + handler(id) { + if (id.startsWith(browserExternalNamespace)) { + const path = id.slice(browserExternalNamespace.length) + if (isProduction) { + return { + code: 'module.exports = {}', + } + } else { + return { + // Return in CJS to intercept named imports. Use `Object.create` to + // create the Proxy in the prototype to workaround esbuild issue. Why? + // + // In short, esbuild cjs->esm flow: + // 1. Create empty object using `Object.create(Object.getPrototypeOf(module.exports))`. + // 2. Assign props of `module.exports` to the object. + // 3. Return object for ESM use. + // + // If we do `module.exports = new Proxy({}, {})`, step 1 returns empty object, + // step 2 does nothing as there's no props for `module.exports`. The final object + // is just an empty object. + // + // Creating the Proxy in the prototype satisfies step 1 immediately, which means + // the returned object is a Proxy that we can intercept. + // + // Note: Skip keys that are accessed by esbuild and browser devtools. + code: `\ + module.exports = Object.create(new Proxy({}, { + get(_, key) { + if ( + key !== '__esModule' && + key !== '__proto__' && + key !== 'constructor' && + key !== 'splice' + ) { + console.warn(\`Module "${path}" has been externalized for browser compatibility. Cannot access "${path}.\${key}" in client code. See http://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.\`) + } + } + }))`, + } } } - }, - ) - build.onLoad( - { filter: /.*/, namespace: 'optional-peer-dep' }, - ({ path }) => { - if (isProduction) { - return { - contents: 'module.exports = {}', - } - } else { - const [, peerDep, parentDep] = path.split(':') - return { - contents: `throw new Error(\`Could not resolve "${peerDep}" imported by "${parentDep}". Is it installed?\`)`, + if (id.startsWith(optionalPeerDepNamespace)) { + if (isProduction) { + return { + code: 'module.exports = {}', + } + } else { + const path = id.slice(externalWithConversionNamespace.length) + const [, peerDep, parentDep] = path.split(':') + return { + code: `throw new Error(\`Could not resolve "${peerDep}" imported by "${parentDep}". Is it installed?\`)`, + } } } }, - ) + }, }, - } + ] } const matchesEntireLine = (text: string) => `^${escapeRegex(text)}$` -// esbuild doesn't transpile `require('foo')` into `import` statements if 'foo' is externalized +// rolldown (and esbuild) doesn't transpile `require('foo')` into `import` statements if 'foo' is externalized // https://github.com/evanw/esbuild/issues/566#issuecomment-735551834 -export function esbuildCjsExternalPlugin( +export function rolldownCjsExternalPlugin( externals: string[], platform: 'node' | 'browser' | 'neutral', ): Plugin { + const filter = new RegExp(externals.map(matchesEntireLine).join('|')) + return { name: 'cjs-external', - setup(build) { - const filter = new RegExp(externals.map(matchesEntireLine).join('|')) - - build.onResolve({ filter: new RegExp(`^${nonFacadePrefix}`) }, (args) => { - return { - path: args.path.slice(nonFacadePrefix.length), - external: true, + resolveId: { + filter: { id: [new RegExp(`^${nonFacadePrefix}`), filter] }, + handler(id, _importer, options) { + if (id.startsWith(nonFacadePrefix)) { + return { + id: id.slice(nonFacadePrefix.length), + external: true, + } } - }) - build.onResolve({ filter }, (args) => { - // preserve `require` for node because it's more accurate than converting it to import - if (args.kind === 'require-call' && platform !== 'node') { + if (filter.test(id)) { + const kind = options.kind + // preserve `require` for node because it's more accurate than converting it to import + if (kind === 'require-call' && platform !== 'node') { + return { + id: cjsExternalFacadeNamespace + id, + } + } + return { - path: args.path, - namespace: cjsExternalFacadeNamespace, + id, + external: true, } } - - return { - path: args.path, - external: true, + }, + }, + load: { + filter: { id: [new RegExp(`^${cjsExternalFacadeNamespace}`)] }, + handler(id) { + if (id.startsWith(cjsExternalFacadeNamespace)) { + return { + code: + `import * as m from ${JSON.stringify( + nonFacadePrefix + id.slice(cjsExternalFacadeNamespace.length), + )};` + `module.exports = m;`, + } } - }) - - build.onLoad( - { filter: /.*/, namespace: cjsExternalFacadeNamespace }, - (args) => ({ - contents: - `import * as m from ${JSON.stringify( - nonFacadePrefix + args.path, - )};` + `module.exports = m;`, - }), - ) + }, }, } } diff --git a/packages/vite/src/node/optimizer/scan.ts b/packages/vite/src/node/optimizer/scan.ts index e46413321822d1..ed9162aff3797d 100644 --- a/packages/vite/src/node/optimizer/scan.ts +++ b/packages/vite/src/node/optimizer/scan.ts @@ -2,15 +2,8 @@ import fs from 'node:fs' import fsp from 'node:fs/promises' import path from 'node:path' import { performance } from 'node:perf_hooks' -import type { - BuildContext, - Loader, - OnLoadArgs, - OnLoadResult, - Plugin, -} from 'esbuild' -import esbuild, { formatMessages, transform } from 'esbuild' -import type { PartialResolvedId } from 'rollup' +import { scan, transform } from 'rolldown/experimental' +import type { PartialResolvedId, Plugin } from 'rolldown' import colors from 'picocolors' import { glob, isDynamicPattern } from 'tinyglobby' import { @@ -21,6 +14,7 @@ import { } from '../constants' import { arraify, + asyncFlatten, createDebugger, dataUrlRE, externalRE, @@ -41,7 +35,6 @@ import { BaseEnvironment } from '../baseEnvironment' import type { DevEnvironment } from '../server/environment' import { transformGlobImport } from '../plugins/importMetaGlob' import { cleanUrl } from '../../shared/utils' -import { loadTsconfigJsonForFile } from '../plugins/esbuild' export class ScanEnvironment extends BaseEnvironment { mode = 'scan' as const @@ -108,7 +101,7 @@ export function devToScanEnvironment( const debug = createDebugger('vite:deps') -const htmlTypesRE = /\.(html|vue|svelte|astro|imba)$/ +const htmlTypesRE = /\.(?:html|vue|svelte|astro|imba)$/ // A simple regex to detect import sources. This is only used on // - const filePath = id.replace(normalizePath(config.root), '') - addToHTMLProxyCache(config, filePath, inlineModuleIndex, { - code: contents, - }) - js += `\nimport "${id}?html-proxy&index=${inlineModuleIndex}.js"` - shouldRemove = true - } + // script tags + if (node.nodeName === 'script') { + const { src, srcSourceCodeLocation, isModule, isAsync, isIgnored } = + getScriptInfo(node) - everyScriptIsAsync &&= isAsync - someScriptsAreAsync ||= isAsync - someScriptsAreDefer ||= !isAsync - } else if (url && !isPublicFile) { - if (!isExcludedUrl(url)) { - config.logger.warn( - ` + const filePath = id.replace(normalizePath(config.root), '') + addToHTMLProxyCache(config, filePath, inlineModuleIndex, { + code: contents, + }) + js += `\nimport "${id}?html-proxy&index=${inlineModuleIndex}.js"` + shouldRemove = true + } + + everyScriptIsAsync &&= isAsync + someScriptsAreAsync ||= isAsync + someScriptsAreDefer ||= !isAsync + } else if (url && !isPublicFile) { + if (!isExcludedUrl(url)) { + config.logger.warn( + ` asset - for (const { start, end, url } of scriptUrls) { - if (checkPublicFile(url, config)) { - s.update( - start, - end, - partialEncodeURIPath(toOutputPublicFilePath(url)), - ) - } else if (!isExcludedUrl(url)) { - s.update( - start, - end, - partialEncodeURIPath(await urlToBuiltUrl(this, url, id)), - ) - } + if (shouldRemove) { + // remove the script tag from the html. we are going to inject new + // ones in the end. + s.remove( + nodeStartWithLeadingWhitespace(node), + node.sourceCodeLocation!.endOffset, + ) } + }) - // ignore if its url can't be resolved - const resolvedStyleUrls = await Promise.all( - styleUrls.map(async (styleUrl) => ({ - ...styleUrl, - resolved: await this.resolve(styleUrl.url, id), - })), + isAsyncScriptMap.get(config)!.set(id, everyScriptIsAsync) + + if (someScriptsAreAsync && someScriptsAreDefer) { + config.logger.warn( + `\nMixed async and defer script modules in ${id}, output script will fallback to defer. Every script, including inline ones, need to be marked as async for your output script to be async.`, ) - for (const { start, end, url, resolved } of resolvedStyleUrls) { - if (resolved == null) { - config.logger.warnOnce( - `\n${url} doesn't exist at build time, it will remain unchanged to be resolved at runtime`, - ) - const importExpression = `\nimport ${JSON.stringify(url)}` - js = js.replace(importExpression, '') - } else { - s.remove(start, end) - } - } + } - processedHtml(this).set(id, s.toString()) + await Promise.all(assetUrlsPromises) - // inject module preload polyfill only when configured and needed - const { modulePreload } = this.environment.config.build - if ( - modulePreload !== false && - modulePreload.polyfill && - (someScriptsAreAsync || someScriptsAreDefer) - ) { - js = `import "${modulePreloadPolyfillId}";\n${js}` + // emit asset + for (const { start, end, url } of scriptUrls) { + if (checkPublicFile(url, config)) { + s.update( + start, + end, + partialEncodeURIPath(toOutputPublicFilePath(url)), + ) + } else if (!isExcludedUrl(url)) { + s.update( + start, + end, + partialEncodeURIPath(await urlToBuiltUrl(this, url, id)), + ) } + } - await Promise.all(setModuleSideEffectPromises) + // ignore if its url can't be resolved + const resolvedStyleUrls = await Promise.all( + styleUrls.map(async (styleUrl) => ({ + ...styleUrl, + resolved: await this.resolve(styleUrl.url, id), + })), + ) + for (const { start, end, url, resolved } of resolvedStyleUrls) { + if (resolved == null) { + config.logger.warnOnce( + `\n${url} doesn't exist at build time, it will remain unchanged to be resolved at runtime`, + ) + const importExpression = `\nimport ${JSON.stringify(url)}` + js = js.replace(importExpression, '') + } else { + s.remove(start, end) + } + } + + processedHtml(this).set(id, s.toString()) - // Force rollup to keep this module from being shared between other entry points. - // If the resulting chunk is empty, it will be removed in generateBundle. - return { code: js, moduleSideEffects: 'no-treeshake' } + // inject module preload polyfill only when configured and needed + const { modulePreload } = this.environment.config.build + if ( + modulePreload !== false && + modulePreload.polyfill && + (someScriptsAreAsync || someScriptsAreDefer) + ) { + js = `import "${modulePreloadPolyfillId}";\n${js}` } + + await Promise.all(setModuleSideEffectPromises) + + // Force rollup to keep this module from being shared between other entry points. + // If the resulting chunk is empty, it will be removed in generateBundle. + return { code: js, moduleSideEffects: 'no-treeshake' } }, }, diff --git a/packages/vite/src/node/plugins/importAnalysisBuild.ts b/packages/vite/src/node/plugins/importAnalysisBuild.ts index 17fdbdb402a7e8..b023d4e51dcdee 100644 --- a/packages/vite/src/node/plugins/importAnalysisBuild.ts +++ b/packages/vite/src/node/plugins/importAnalysisBuild.ts @@ -181,42 +181,44 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { return { name: 'vite:build-import-analysis', resolveId: { + filter: { + id: preloadHelperId, + }, handler(id) { - if (id === preloadHelperId) { - return id - } + return id }, }, load: { - handler(id) { - if (id === preloadHelperId) { - const { modulePreload } = this.environment.config.build - - const scriptRel = - modulePreload && modulePreload.polyfill - ? `'modulepreload'` - : `/* @__PURE__ */ (${detectScriptRel.toString()})()` - - // There are two different cases for the preload list format in __vitePreload - // - // __vitePreload(() => import(asyncChunk), [ ...deps... ]) - // - // This is maintained to keep backwards compatibility as some users developed plugins - // using regex over this list to workaround the fact that module preload wasn't - // configurable. - const assetsURL = - renderBuiltUrl || isRelativeBase - ? // If `experimental.renderBuiltUrl` is used, the dependencies might be relative to the current chunk. - // If relative base is used, the dependencies are relative to the current chunk. - // The importerUrl is passed as third parameter to __vitePreload in this case - `function(dep, importerUrl) { return new URL(dep, importerUrl).href }` - : // If the base isn't relative, then the deps are relative to the projects `outDir` and the base - // is appended inside __vitePreload too. - `function(dep) { return ${JSON.stringify(config.base)}+dep }` - const preloadCode = `const scriptRel = ${scriptRel};const assetsURL = ${assetsURL};const seen = {};export const ${preloadMethod} = ${preload.toString()}` - return { code: preloadCode, moduleSideEffects: false } - } + filter: { + id: preloadHelperId, + }, + handler(_id) { + const { modulePreload } = this.environment.config.build + + const scriptRel = + modulePreload && modulePreload.polyfill + ? `'modulepreload'` + : `/* @__PURE__ */ (${detectScriptRel.toString()})()` + + // There are two different cases for the preload list format in __vitePreload + // + // __vitePreload(() => import(asyncChunk), [ ...deps... ]) + // + // This is maintained to keep backwards compatibility as some users developed plugins + // using regex over this list to workaround the fact that module preload wasn't + // configurable. + const assetsURL = + renderBuiltUrl || isRelativeBase + ? // If `experimental.renderBuiltUrl` is used, the dependencies might be relative to the current chunk. + // If relative base is used, the dependencies are relative to the current chunk. + // The importerUrl is passed as third parameter to __vitePreload in this case + `function(dep, importerUrl) { return new URL(dep, importerUrl).href }` + : // If the base isn't relative, then the deps are relative to the projects `outDir` and the base + // is appended inside __vitePreload too. + `function(dep) { return ${JSON.stringify(config.base)}+dep }` + const preloadCode = `const scriptRel = ${scriptRel};const assetsURL = ${assetsURL};const seen = {};export const ${preloadMethod} = ${preload.toString()}` + return { code: preloadCode, moduleSideEffects: false } }, }, diff --git a/packages/vite/src/node/plugins/importMetaGlob.ts b/packages/vite/src/node/plugins/importMetaGlob.ts index 68898ddca0515d..f917225598ed5d 100644 --- a/packages/vite/src/node/plugins/importMetaGlob.ts +++ b/packages/vite/src/node/plugins/importMetaGlob.ts @@ -52,8 +52,10 @@ export function importGlobPlugin(config: ResolvedConfig): Plugin { importGlobMaps.clear() }, transform: { + filter: { + code: 'import.meta.glob', + }, async handler(code, id) { - if (!code.includes('import.meta.glob')) return const result = await transformGlobImport( code, id, diff --git a/packages/vite/src/node/plugins/json.ts b/packages/vite/src/node/plugins/json.ts index 5ce8f4358dc8cb..21664d024318ee 100644 --- a/packages/vite/src/node/plugins/json.ts +++ b/packages/vite/src/node/plugins/json.ts @@ -45,10 +45,10 @@ export function jsonPlugin( name: 'vite:json', transform: { + filter: { + id: { include: jsonExtRE, exclude: SPECIAL_QUERY_RE }, + }, handler(json, id) { - if (!jsonExtRE.test(id)) return null - if (SPECIAL_QUERY_RE.test(id)) return null - if (inlineRE.test(id) || noInlineRE.test(id)) { this.warn( `\n` + diff --git a/packages/vite/src/node/plugins/loadFallback.ts b/packages/vite/src/node/plugins/loadFallback.ts index b3671c7615843a..040cc3d3ea6855 100644 --- a/packages/vite/src/node/plugins/loadFallback.ts +++ b/packages/vite/src/node/plugins/loadFallback.ts @@ -9,6 +9,12 @@ export function buildLoadFallbackPlugin(): Plugin { return { name: 'vite:load-fallback', load: { + filter: { + id: { + include: /\?|#/, + exclude: /^data:/, + }, + }, async handler(id) { try { const cleanedId = cleanUrl(id) diff --git a/packages/vite/src/node/plugins/modulePreloadPolyfill.ts b/packages/vite/src/node/plugins/modulePreloadPolyfill.ts index e662ddf7dd0857..998a93dac16563 100644 --- a/packages/vite/src/node/plugins/modulePreloadPolyfill.ts +++ b/packages/vite/src/node/plugins/modulePreloadPolyfill.ts @@ -11,27 +11,25 @@ export function modulePreloadPolyfillPlugin(config: ResolvedConfig): Plugin { return { name: 'vite:modulepreload-polyfill', resolveId: { - handler(id) { - if (id === modulePreloadPolyfillId) { - return resolvedModulePreloadPolyfillId - } + filter: { id: modulePreloadPolyfillId }, + handler(_id) { + return resolvedModulePreloadPolyfillId }, }, load: { - handler(id) { - if (id === resolvedModulePreloadPolyfillId) { - // `isModernFlag` is only available during build since it is resolved by `vite:build-import-analysis` - if ( - config.command !== 'build' || - this.environment.config.consumer !== 'client' - ) { - return '' - } - if (!polyfillString) { - polyfillString = `${isModernFlag}&&(${polyfill.toString()}());` - } - return { code: polyfillString, moduleSideEffects: true } + filter: { id: resolvedModulePreloadPolyfillId }, + handler(_id) { + // `isModernFlag` is only available during build since it is resolved by `vite:build-import-analysis` + if ( + config.command !== 'build' || + this.environment.config.consumer !== 'client' + ) { + return '' + } + if (!polyfillString) { + polyfillString = `${isModernFlag}&&(${polyfill.toString()}());` } + return { code: polyfillString, moduleSideEffects: true } }, }, } diff --git a/packages/vite/src/node/plugins/resolve.ts b/packages/vite/src/node/plugins/resolve.ts index 364a75d94e24dd..703104bcab3a67 100644 --- a/packages/vite/src/node/plugins/resolve.ts +++ b/packages/vite/src/node/plugins/resolve.ts @@ -477,6 +477,12 @@ export function resolvePlugin( }, load: { + filter: { + id: [ + new RegExp(`^${browserExternalId}`), + new RegExp(`^${optionalPeerDepId}`), + ], + }, handler(id) { if (id.startsWith(browserExternalId)) { if (isBuild) { diff --git a/packages/vite/src/node/plugins/wasm.ts b/packages/vite/src/node/plugins/wasm.ts index 2cca0b8d09d94d..ad3fdb67cfef14 100644 --- a/packages/vite/src/node/plugins/wasm.ts +++ b/packages/vite/src/node/plugins/wasm.ts @@ -51,23 +51,19 @@ export const wasmHelperPlugin = (): Plugin => { name: 'vite:wasm-helper', resolveId: { + filter: { id: wasmHelperId }, handler(id) { - if (id === wasmHelperId) { - return id - } + return id }, }, load: { + filter: { id: [wasmHelperId, /\.wasm\?init$/] }, async handler(id) { if (id === wasmHelperId) { return `export default ${wasmHelperCode}` } - if (!id.endsWith('.wasm?init')) { - return - } - const url = await fileToUrl(this, id) return ` @@ -84,11 +80,8 @@ export const wasmFallbackPlugin = (): Plugin => { name: 'vite:wasm-fallback', load: { - handler(id) { - if (!id.endsWith('.wasm')) { - return - } - + filter: { id: /\.wasm$/ }, + handler(_id) { throw new Error( '"ESM integration proposal for Wasm" is not supported currently. ' + 'Use vite-plugin-wasm or other community plugins to handle this. ' + diff --git a/packages/vite/src/node/plugins/worker.ts b/packages/vite/src/node/plugins/worker.ts index 969db75c8b765e..6779cf8e59aaed 100644 --- a/packages/vite/src/node/plugins/worker.ts +++ b/packages/vite/src/node/plugins/worker.ts @@ -295,8 +295,9 @@ export function webWorkerPlugin(config: ResolvedConfig): Plugin { }, load: { - handler(id) { - if (isBuild && workerOrSharedWorkerRE.test(id)) { + filter: { id: workerOrSharedWorkerRE }, + handler(_id) { + if (isBuild) { return '' } }, @@ -309,6 +310,9 @@ export function webWorkerPlugin(config: ResolvedConfig): Plugin { // }, transform: { + filter: { + id: [workerFileRE, workerOrSharedWorkerRE], + }, async handler(raw, id) { const workerFileMatch = workerFileRE.exec(id) if (workerFileMatch) { diff --git a/packages/vite/src/node/plugins/workerImportMetaUrl.ts b/packages/vite/src/node/plugins/workerImportMetaUrl.ts index 9d68e57b6f1dbb..d90f3dc8a1874a 100644 --- a/packages/vite/src/node/plugins/workerImportMetaUrl.ts +++ b/packages/vite/src/node/plugins/workerImportMetaUrl.ts @@ -180,17 +180,6 @@ async function getWorkerType( return 'classic' } -function isIncludeWorkerImportMetaUrl(code: string): boolean { - if ( - (code.includes('new Worker') || code.includes('new SharedWorker')) && - code.includes('new URL') && - code.includes(`import.meta.url`) - ) { - return true - } - return false -} - export function workerImportMetaUrlPlugin(config: ResolvedConfig): Plugin { const isBuild = config.command === 'build' let workerResolver: ResolveIdFn @@ -218,80 +207,81 @@ export function workerImportMetaUrlPlugin(config: ResolvedConfig): Plugin { // }, transform: { + filter: { + code: /new\s+(?:Worker|SharedWorker).+new\s+URL.+import\.meta\.url/s, + }, async handler(code, id) { - if (isIncludeWorkerImportMetaUrl(code)) { - let s: MagicString | undefined - const cleanString = stripLiteral(code) - const workerImportMetaUrlRE = - /\bnew\s+(?:Worker|SharedWorker)\s*\(\s*(new\s+URL\s*\(\s*('[^']+'|"[^"]+"|`[^`]+`)\s*,\s*import\.meta\.url\s*\))/dg - - let match: RegExpExecArray | null - while ((match = workerImportMetaUrlRE.exec(cleanString))) { - const [[, endIndex], [expStart, expEnd], [urlStart, urlEnd]] = - match.indices! - - const rawUrl = code.slice(urlStart, urlEnd) - - // potential dynamic template string - if (rawUrl[0] === '`' && rawUrl.includes('${')) { - this.error( - `\`new URL(url, import.meta.url)\` is not supported in dynamic template string.`, - expStart, - ) - } + let s: MagicString | undefined + const cleanString = stripLiteral(code) + const workerImportMetaUrlRE = + /\bnew\s+(?:Worker|SharedWorker)\s*\(\s*(new\s+URL\s*\(\s*('[^']+'|"[^"]+"|`[^`]+`)\s*,\s*import\.meta\.url\s*\))/dg + + let match: RegExpExecArray | null + while ((match = workerImportMetaUrlRE.exec(cleanString))) { + const [[, endIndex], [expStart, expEnd], [urlStart, urlEnd]] = + match.indices! + + const rawUrl = code.slice(urlStart, urlEnd) + + // potential dynamic template string + if (rawUrl[0] === '`' && rawUrl.includes('${')) { + this.error( + `\`new URL(url, import.meta.url)\` is not supported in dynamic template string.`, + expStart, + ) + } - s ||= new MagicString(code) - const workerType = await getWorkerType(code, cleanString, endIndex) - const url = rawUrl.slice(1, -1) - let file: string | undefined - if (url[0] === '.') { - file = path.resolve(path.dirname(id), url) - file = slash(tryFsResolve(file, fsResolveOptions) ?? file) - } else { - workerResolver ??= createBackCompatIdResolver(config, { - extensions: [], - tryIndex: false, - preferRelative: true, - }) - file = await workerResolver(this.environment, url, id) - file ??= - url[0] === '/' - ? slash(path.join(config.publicDir, url)) - : slash(path.resolve(path.dirname(id), url)) - } + s ||= new MagicString(code) + const workerType = await getWorkerType(code, cleanString, endIndex) + const url = rawUrl.slice(1, -1) + let file: string | undefined + if (url[0] === '.') { + file = path.resolve(path.dirname(id), url) + file = slash(tryFsResolve(file, fsResolveOptions) ?? file) + } else { + workerResolver ??= createBackCompatIdResolver(config, { + extensions: [], + tryIndex: false, + preferRelative: true, + }) + file = await workerResolver(this.environment, url, id) + file ??= + url[0] === '/' + ? slash(path.join(config.publicDir, url)) + : slash(path.resolve(path.dirname(id), url)) + } - if ( - isBuild && - config.isWorker && - config.bundleChain.at(-1) === cleanUrl(file) - ) { - s.update(expStart, expEnd, 'self.location.href') + if ( + isBuild && + config.isWorker && + config.bundleChain.at(-1) === cleanUrl(file) + ) { + s.update(expStart, expEnd, 'self.location.href') + } else { + let builtUrl: string + if (isBuild) { + builtUrl = await workerFileToUrl(config, file) } else { - let builtUrl: string - if (isBuild) { - builtUrl = await workerFileToUrl(config, file) - } else { - builtUrl = await fileToUrl(this, cleanUrl(file)) - builtUrl = injectQuery( - builtUrl, - `${WORKER_FILE_ID}&type=${workerType}`, - ) - } - s.update( - expStart, - expEnd, - // NOTE: add `'' +` to opt-out rolldown's transform: https://github.com/rolldown/rolldown/issues/2745 - `new URL(/* @vite-ignore */ ${JSON.stringify(builtUrl)}, '' + import.meta.url)`, + builtUrl = await fileToUrl(this, cleanUrl(file)) + builtUrl = injectQuery( + builtUrl, + `${WORKER_FILE_ID}&type=${workerType}`, ) } + s.update( + expStart, + expEnd, + // NOTE: add `'' +` to opt-out rolldown's transform: https://github.com/rolldown/rolldown/issues/2745 + `new URL(/* @vite-ignore */ ${JSON.stringify(builtUrl)}, '' + import.meta.url)`, + ) } + } - if (s) { - return transformStableResult(s, id, config) - } - - return null + if (s) { + return transformStableResult(s, id, config) } + + return null }, }, } From efbc14b1cb96a9cd087cbce8f7546963c60d029d Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Fri, 7 Mar 2025 23:01:15 +0900 Subject: [PATCH 013/102] refactor: skip hook filter inject in build --- packages/vite/src/node/build.ts | 40 +++++------------------- packages/vite/src/node/plugins/worker.ts | 4 +-- 2 files changed, 10 insertions(+), 34 deletions(-) diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index 7ad9b9a7973916..627e64578ad131 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -81,10 +81,6 @@ import { } from './baseEnvironment' import type { MinimalPluginContext, Plugin, PluginContext } from './plugin' import type { RollupPluginHooks } from './typeUtils' -import { - createFilterForTransform, - createIdFilter, -} from './plugins/pluginFilter' import { buildOxcPlugin } from './plugins/oxc' export interface BuildEnvironmentOptions { @@ -597,7 +593,7 @@ async function buildEnvironment( // inject environment and ssr arg to plugin load/transform hooks const chunkMetadataMap = new Map() const plugins = environment.plugins.map((p) => - injectEnvironmentAndFilterToHooks(environment, chunkMetadataMap, p), + injectEnvironmentToHooks(environment, chunkMetadataMap, p), ) const rollupOptions: RolldownOptions = { @@ -1157,7 +1153,7 @@ function isExternal(id: string, test: string | RegExp) { } } -export function injectEnvironmentAndFilterToHooks( +export function injectEnvironmentToHooks( environment: BuildEnvironment, chunkMetadataMap: Map, plugin: Plugin, @@ -1169,13 +1165,13 @@ export function injectEnvironmentAndFilterToHooks( for (const hook of Object.keys(clone) as RollupPluginHooks[]) { switch (hook) { case 'resolveId': - clone[hook] = wrapEnvironmentAndFilterResolveId(environment, resolveId) + clone[hook] = wrapEnvironmentResolveId(environment, resolveId) break case 'load': - clone[hook] = wrapEnvironmentAndFilterLoad(environment, load) + clone[hook] = wrapEnvironmentLoad(environment, load) break case 'transform': - clone[hook] = wrapEnvironmentAndFilterTransform(environment, transform) + clone[hook] = wrapEnvironmentTransform(environment, transform) break default: if (ROLLUP_HOOKS.includes(hook)) { @@ -1193,20 +1189,14 @@ export function injectEnvironmentAndFilterToHooks( return clone } -function wrapEnvironmentAndFilterResolveId( +function wrapEnvironmentResolveId( environment: BuildEnvironment, hook?: Plugin['resolveId'], ): Plugin['resolveId'] { if (!hook) return - const rawIdFilter = typeof hook === 'object' ? hook.filter?.id : undefined - const idFilter = rawIdFilter ? createIdFilter(rawIdFilter) : undefined - const fn = getHookHandler(hook) const handler: Plugin['resolveId'] = function (id, importer, options) { - if (idFilter && !idFilter(id)) { - return - } return fn.call( injectEnvironmentInContext(this, environment), id, @@ -1225,20 +1215,14 @@ function wrapEnvironmentAndFilterResolveId( } } -function wrapEnvironmentAndFilterLoad( +function wrapEnvironmentLoad( environment: BuildEnvironment, hook?: Plugin['load'], ): Plugin['load'] { if (!hook) return - const rawIdFilter = typeof hook === 'object' ? hook.filter?.id : undefined - const idFilter = rawIdFilter ? createIdFilter(rawIdFilter) : undefined - const fn = getHookHandler(hook) const handler: Plugin['load'] = function (id, ...args) { - if (idFilter && !idFilter(id)) { - return - } return fn.call( injectEnvironmentInContext(this, environment), id, @@ -1256,22 +1240,14 @@ function wrapEnvironmentAndFilterLoad( } } -function wrapEnvironmentAndFilterTransform( +function wrapEnvironmentTransform( environment: BuildEnvironment, hook?: Plugin['transform'], ): Plugin['transform'] { if (!hook) return - const filters = typeof hook === 'object' ? hook.filter : undefined - const filter = filters - ? createFilterForTransform(filters.id, filters.code) - : undefined - const fn = getHookHandler(hook) const handler: Plugin['transform'] = function (code, importer, ...args) { - if (filter && !filter(importer, code)) { - return - } return fn.call( injectEnvironmentInContext(this, environment), code, diff --git a/packages/vite/src/node/plugins/worker.ts b/packages/vite/src/node/plugins/worker.ts index 6779cf8e59aaed..ec07794d1cac4f 100644 --- a/packages/vite/src/node/plugins/worker.ts +++ b/packages/vite/src/node/plugins/worker.ts @@ -17,7 +17,7 @@ import { import { BuildEnvironment, createToImportMetaURLBasedRelativeRuntime, - injectEnvironmentAndFilterToHooks, + injectEnvironmentToHooks, onRollupLog, toOutputFilePathInJS, } from '../build' @@ -98,7 +98,7 @@ async function bundleWorkerEntry( ...rollupOptions, input, plugins: workerEnvironment.plugins.map((p) => - injectEnvironmentAndFilterToHooks(workerEnvironment, chunkMetadataMap, p), + injectEnvironmentToHooks(workerEnvironment, chunkMetadataMap, p), ), onLog(level, log) { onRollupLog(level, log, workerEnvironment) From ead8dedc0d3f8e2855c5d1d20499c6e23d6cf225 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Fri, 7 Mar 2025 23:14:24 +0900 Subject: [PATCH 014/102] perf: add `experimental.enableNativePlugin` Co-authored-by: IWANABETHATGUY --- packages/vite/src/node/build.ts | 46 ++- packages/vite/src/node/config.ts | 9 + packages/vite/src/node/idResolver.ts | 41 ++- packages/vite/src/node/plugins/css.ts | 1 + packages/vite/src/node/plugins/define.ts | 13 + .../src/node/plugins/importAnalysisBuild.ts | 95 ++++-- packages/vite/src/node/plugins/index.ts | 115 +++++-- packages/vite/src/node/plugins/resolve.ts | 306 +++++++++++++++++- playground/resolve/__tests__/resolve.spec.ts | 6 +- playground/resolve/browser-field/relative.js | 5 +- playground/resolve/index.html | 18 +- 11 files changed, 562 insertions(+), 93 deletions(-) diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index 627e64578ad131..8a1acdb6710e64 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -21,6 +21,10 @@ import type { WarningHandlerWithDefault, // WatcherOptions, } from 'rolldown' +import { + loadFallbackPlugin as nativeLoadFallbackPlugin, + manifestPlugin as nativeManifestPlugin, +} from 'rolldown/experimental' import type { RollupCommonJSOptions } from 'dep-types/commonjs' import type { RollupDynamicImportVarsOptions } from 'dep-types/dynamicImportVars' import type { EsbuildTarget } from 'types/internal/esbuildOptions' @@ -474,10 +478,12 @@ export async function resolveBuildPlugins(config: ResolvedConfig): Promise<{ pre: Plugin[] post: Plugin[] }> { + const enableNativePlugin = config.experimental.enableNativePlugin return { pre: [ completeSystemWrapPlugin(), - dataURIPlugin(), + // rolldown has builtin support datauri, use a switch to control it for convenience + ...(enableNativePlugin === true ? [] : [dataURIPlugin()]), perEnvironmentPlugin( 'vite:rollup-options-plugins', async (environment) => @@ -491,13 +497,37 @@ export async function resolveBuildPlugins(config: ResolvedConfig): Promise<{ ], post: [ buildImportAnalysisPlugin(config), - buildOxcPlugin(), - ...(config.build.minify === 'esbuild' ? [buildEsbuildPlugin()] : []), + ...(enableNativePlugin !== true + ? [ + buildOxcPlugin(), + ...(config.build.minify === 'esbuild' + ? [buildEsbuildPlugin()] + : []), + ] + : []), terserPlugin(config), ...(!config.isWorker - ? [manifestPlugin(), ssrManifestPlugin(), buildReporterPlugin(config)] + ? [ + config.build.manifest && enableNativePlugin === true + ? perEnvironmentPlugin('native:manifest', (environment) => { + if (!environment.config.build.manifest) return false + + return nativeManifestPlugin({ + root: environment.config.root, + outPath: + environment.config.build.manifest === true + ? '.vite/manifest.json' + : environment.config.build.manifest, + }) + }) + : manifestPlugin(), + ssrManifestPlugin(), + buildReporterPlugin(config), + ] : []), - buildLoadFallbackPlugin(), + enableNativePlugin === true + ? nativeLoadFallbackPlugin() + : buildLoadFallbackPlugin(), ], } } @@ -1160,7 +1190,11 @@ export function injectEnvironmentToHooks( ): Plugin { const { resolveId, load, transform } = plugin - const clone = { ...plugin } + // the plugin can be a class instance (e.g. native plugins) + const clone: Plugin = Object.assign( + Object.create(Object.getPrototypeOf(plugin)), + plugin, + ) for (const hook of Object.keys(clone) as RollupPluginHooks[]) { switch (hook) { diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index 7dacc0639928cb..3656565391ecd5 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -515,6 +515,13 @@ export interface ExperimentalOptions { * @default false */ skipSsrTransform?: boolean + /** + * Enable builtin plugin that written by rust, which is faster than js plugin. + * + * @experimental + * @default false + */ + enableNativePlugin?: boolean | 'resolver' } export interface LegacyOptions { @@ -702,6 +709,7 @@ export const configDefaults = Object.freeze({ renderBuiltUrl: undefined, hmrPartialAccept: false, skipSsrTransform: false, + enableNativePlugin: false, }, future: { removePluginHookHandleHotUpdate: undefined, @@ -1662,6 +1670,7 @@ export async function resolveConfig( experimental: { importGlobRestoreExtension: false, hmrPartialAccept: false, + enableNativePlugin: false, ...config.experimental, }, future: config.future, diff --git a/packages/vite/src/node/idResolver.ts b/packages/vite/src/node/idResolver.ts index 7cd0ffdea132d7..6f43238ded87e2 100644 --- a/packages/vite/src/node/idResolver.ts +++ b/packages/vite/src/node/idResolver.ts @@ -3,7 +3,7 @@ import aliasPlugin from '@rollup/plugin-alias' import type { ResolvedConfig } from './config' import type { EnvironmentPluginContainer } from './server/pluginContainer' import { createEnvironmentPluginContainer } from './server/pluginContainer' -import { resolvePlugin } from './plugins/resolve' +import { oxcResolvePlugin, resolvePlugin } from './plugins/resolve' import type { InternalResolveOptions } from './plugins/resolve' import type { Environment } from './environment' import type { PartialEnvironment } from './baseEnvironment' @@ -61,17 +61,34 @@ export function createIdResolver( [ // @ts-expect-error the aliasPlugin uses rollup types aliasPlugin({ entries: environment.config.resolve.alias }), - resolvePlugin({ - root: config.root, - isProduction: config.isProduction, - isBuild: config.command === 'build', - asSrc: true, - preferRelative: false, - tryIndex: true, - ...options, - // Ignore sideEffects and other computations as we only need the id - idOnly: true, - }), + ...(config.experimental.enableNativePlugin + ? oxcResolvePlugin( + { + root: config.root, + isProduction: config.isProduction, + isBuild: config.command === 'build', + asSrc: true, + preferRelative: false, + tryIndex: true, + ...options, + // Ignore sideEffects and other computations as we only need the id + idOnly: true, + }, + environment.config, + ) + : [ + resolvePlugin({ + root: config.root, + isProduction: config.isProduction, + isBuild: config.command === 'build', + asSrc: true, + preferRelative: false, + tryIndex: true, + ...options, + // Ignore sideEffects and other computations as we only need the id + idOnly: true, + }), + ]), ], undefined, false, diff --git a/packages/vite/src/node/plugins/css.ts b/packages/vite/src/node/plugins/css.ts index f8c93d5fa20fa5..3b442e72719653 100644 --- a/packages/vite/src/node/plugins/css.ts +++ b/packages/vite/src/node/plugins/css.ts @@ -1234,6 +1234,7 @@ function createCSSResolvers(config: ResolvedConfig): CSSAtImportResolvers { tryIndex: true, tryPrefix: '_', preferRelative: true, + skipMainField: true, }) sassResolve = async (...args) => { // the modern API calls `canonicalize` with resolved file URLs diff --git a/packages/vite/src/node/plugins/define.ts b/packages/vite/src/node/plugins/define.ts index 074680dc398dc4..a3ea472eab094f 100644 --- a/packages/vite/src/node/plugins/define.ts +++ b/packages/vite/src/node/plugins/define.ts @@ -110,6 +110,19 @@ export function definePlugin(config: ResolvedConfig): Plugin { return pattern } + if (config.experimental.enableNativePlugin === true) { + return { + name: 'vite:define', + options(option) { + const [define, _pattern, importMetaEnvVal] = getPattern( + this.environment, + ) + define['import.meta.env'] = importMetaEnvVal + option.define = define + }, + } + } + return { name: 'vite:define', diff --git a/packages/vite/src/node/plugins/importAnalysisBuild.ts b/packages/vite/src/node/plugins/importAnalysisBuild.ts index b023d4e51dcdee..0460c06e3043de 100644 --- a/packages/vite/src/node/plugins/importAnalysisBuild.ts +++ b/packages/vite/src/node/plugins/importAnalysisBuild.ts @@ -6,6 +6,7 @@ import type { } from 'es-module-lexer' import { init, parse as parseImports } from 'es-module-lexer' import type { SourceMap } from 'rolldown' +import { buildImportAnalysisPlugin as nativeBuildImportAnalysisPlugin } from 'rolldown/experimental' import type { RawSourceMap } from '@ampproject/remapping' import convertSourceMap from 'convert-source-map' import { @@ -14,11 +15,11 @@ import { isInNodeModules, numberToPos, } from '../utils' -import type { Plugin } from '../plugin' +import { type Plugin, perEnvironmentPlugin } from '../plugin' import type { ResolvedConfig } from '../config' import { toOutputFilePathInJS } from '../build' import { genSourceMapUrl } from '../server/sourcemap' -import type { Environment } from '../environment' +import type { PartialEnvironment } from '../baseEnvironment' import { removedPureCssFilesCache } from './css' import { createParseErrorInfo } from './importAnalysis' @@ -166,11 +167,43 @@ function preload( }) } +function getPreloadCode( + environment: PartialEnvironment, + renderBuiltUrlBoolean: boolean, + isRelativeBase: boolean, +) { + const { modulePreload } = environment.config.build + + const scriptRel = + modulePreload && modulePreload.polyfill + ? `'modulepreload'` + : `/* @__PURE__ */ (${detectScriptRel.toString()})()` + + // There are two different cases for the preload list format in __vitePreload + // + // __vitePreload(() => import(asyncChunk), [ ...deps... ]) + // + // This is maintained to keep backwards compatibility as some users developed plugins + // using regex over this list to workaround the fact that module preload wasn't + // configurable. + const assetsURL = + renderBuiltUrlBoolean || isRelativeBase + ? // If `experimental.renderBuiltUrl` is used, the dependencies might be relative to the current chunk. + // If relative base is used, the dependencies are relative to the current chunk. + // The importerUrl is passed as third parameter to __vitePreload in this case + `function(dep, importerUrl) { return new URL(dep, importerUrl).href }` + : // If the base isn't relative, then the deps are relative to the projects `outDir` and the base + // is appended inside __vitePreload too. + `function(dep) { return ${JSON.stringify(environment.config.base)}+dep }` + const preloadCode = `const scriptRel = ${scriptRel};const assetsURL = ${assetsURL};const seen = {};export const ${preloadMethod} = ${preload.toString()}` + return preloadCode +} + /** * Build only. During serve this is performed as part of ./importAnalysis. */ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { - const getInsertPreload = (environment: Environment) => + const getInsertPreload = (environment: PartialEnvironment) => environment.config.consumer === 'client' && !config.isWorker && !config.build.lib @@ -178,7 +211,7 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { const renderBuiltUrl = config.experimental.renderBuiltUrl const isRelativeBase = config.base === './' || config.base === '' - return { + const plugin: Plugin = { name: 'vite:build-import-analysis', resolveId: { filter: { @@ -194,30 +227,11 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { id: preloadHelperId, }, handler(_id) { - const { modulePreload } = this.environment.config.build - - const scriptRel = - modulePreload && modulePreload.polyfill - ? `'modulepreload'` - : `/* @__PURE__ */ (${detectScriptRel.toString()})()` - - // There are two different cases for the preload list format in __vitePreload - // - // __vitePreload(() => import(asyncChunk), [ ...deps... ]) - // - // This is maintained to keep backwards compatibility as some users developed plugins - // using regex over this list to workaround the fact that module preload wasn't - // configurable. - const assetsURL = - renderBuiltUrl || isRelativeBase - ? // If `experimental.renderBuiltUrl` is used, the dependencies might be relative to the current chunk. - // If relative base is used, the dependencies are relative to the current chunk. - // The importerUrl is passed as third parameter to __vitePreload in this case - `function(dep, importerUrl) { return new URL(dep, importerUrl).href }` - : // If the base isn't relative, then the deps are relative to the projects `outDir` and the base - // is appended inside __vitePreload too. - `function(dep) { return ${JSON.stringify(config.base)}+dep }` - const preloadCode = `const scriptRel = ${scriptRel};const assetsURL = ${assetsURL};const seen = {};export const ${preloadMethod} = ${preload.toString()}` + const preloadCode = getPreloadCode( + this.environment, + !!renderBuiltUrl, + isRelativeBase, + ) return { code: preloadCode, moduleSideEffects: false } }, }, @@ -738,4 +752,29 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { } }, } + + if (config.experimental.enableNativePlugin === true) { + delete plugin.transform + delete plugin.resolveId + delete plugin.load + return perEnvironmentPlugin( + 'native:import-analysis-build', + (environment) => { + const preloadCode = getPreloadCode( + environment, + !!renderBuiltUrl, + isRelativeBase, + ) + return nativeBuildImportAnalysisPlugin({ + preloadCode, + insertPreload: getInsertPreload(environment), + // this field looks redundant, put a dummy value for now + optimizeModulePreloadRelativePaths: false, + renderBuiltUrl: !!renderBuiltUrl, + isRelativeBase, + }) + }, + ) + } + return plugin } diff --git a/packages/vite/src/node/plugins/index.ts b/packages/vite/src/node/plugins/index.ts index 286f8aeabe8a73..f3a8e278496733 100644 --- a/packages/vite/src/node/plugins/index.ts +++ b/packages/vite/src/node/plugins/index.ts @@ -1,10 +1,25 @@ import aliasPlugin, { type ResolverFunction } from '@rollup/plugin-alias' import type { ObjectHook } from 'rolldown' +import { + aliasPlugin as nativeAliasPlugin, + dynamicImportVarsPlugin as nativeDynamicImportVarsPlugin, + importGlobPlugin as nativeImportGlobPlugin, + jsonPlugin as nativeJsonPlugin, + modulePreloadPolyfillPlugin as nativeModulePreloadPolyfillPlugin, + transformPlugin as nativeTransformPlugin, + wasmFallbackPlugin as nativeWasmFallbackPlugin, + wasmHelperPlugin as nativeWasmHelperPlugin, +} from 'rolldown/experimental' import type { PluginHookUtils, ResolvedConfig } from '../config' -import type { HookHandler, Plugin, PluginWithRequiredHook } from '../plugin' +import { + type HookHandler, + type Plugin, + type PluginWithRequiredHook, + perEnvironmentPlugin, +} from '../plugin' import { watchPackageDataPlugin } from '../packages' import { jsonPlugin } from './json' -import { resolvePlugin } from './resolve' +import { oxcResolvePlugin, resolvePlugin } from './resolve' import { optimizedDepsPlugin } from './optimizedDeps' import { importAnalysisPlugin } from './importAnalysis' import { cssAnalysisPlugin, cssPlugin, cssPostPlugin } from './css' @@ -40,50 +55,104 @@ export async function resolvePlugins( ? await (await import('../build')).resolveBuildPlugins(config) : { pre: [], post: [] } const { modulePreload } = config.build + const enableNativePlugin = config.experimental.enableNativePlugin return [ !isBuild ? optimizedDepsPlugin() : null, !isWorker ? watchPackageDataPlugin(config.packageCache) : null, !isBuild ? preAliasPlugin(config) : null, - aliasPlugin({ - // @ts-expect-error aliasPlugin receives rollup types - entries: config.resolve.alias, - customResolver: viteAliasCustomResolver, - }), + enableNativePlugin === true + ? nativeAliasPlugin({ + entries: config.resolve.alias.map((item) => { + return { + find: item.find, + replacement: item.replacement, + } + }), + }) + : aliasPlugin({ + // @ts-expect-error aliasPlugin receives rollup types + entries: config.resolve.alias, + customResolver: viteAliasCustomResolver, + }), ...prePlugins, modulePreload !== false && modulePreload.polyfill - ? modulePreloadPolyfillPlugin(config) + ? enableNativePlugin === true + ? perEnvironmentPlugin( + 'native:modulepreload-polyfill', + (environment) => { + if ( + config.command !== 'build' || + environment.config.consumer !== 'client' + ) + return false + return nativeModulePreloadPolyfillPlugin({ + skip: false, + }) + }, + ) + : modulePreloadPolyfillPlugin(config) : null, - resolvePlugin({ - root: config.root, - isProduction: config.isProduction, - isBuild, - packageCache: config.packageCache, - asSrc: true, - optimizeDeps: true, - externalize: true, - }), + ...(enableNativePlugin + ? oxcResolvePlugin( + { + root: config.root, + isProduction: config.isProduction, + isBuild, + packageCache: config.packageCache, + asSrc: true, + optimizeDeps: true, + externalize: true, + }, + isWorker ? { ...config, consumer: 'client' } : undefined, + ) + : [ + resolvePlugin({ + root: config.root, + isProduction: config.isProduction, + isBuild, + packageCache: config.packageCache, + asSrc: true, + optimizeDeps: true, + externalize: true, + }), + ]), htmlInlineProxyPlugin(config), cssPlugin(config), - config.oxc !== false ? oxcPlugin(config) : null, - jsonPlugin(config.json, isBuild), - wasmHelperPlugin(), + config.oxc !== false + ? enableNativePlugin === true + ? nativeTransformPlugin() + : oxcPlugin(config) + : null, + enableNativePlugin === true + ? nativeJsonPlugin({ ...config.json, isBuild }) + : jsonPlugin(config.json, isBuild), + enableNativePlugin === true ? nativeWasmHelperPlugin() : wasmHelperPlugin(), webWorkerPlugin(config), assetPlugin(config), ...normalPlugins, - wasmFallbackPlugin(), + enableNativePlugin === true + ? nativeWasmFallbackPlugin() + : wasmFallbackPlugin(), definePlugin(config), cssPostPlugin(config), isBuild && buildHtmlPlugin(config), workerImportMetaUrlPlugin(config), assetImportMetaUrlPlugin(config), ...buildPlugins.pre, - dynamicImportVarsPlugin(config), - importGlobPlugin(config), + enableNativePlugin === true + ? nativeDynamicImportVarsPlugin() + : dynamicImportVarsPlugin(config), + enableNativePlugin === true + ? nativeImportGlobPlugin({ + root: config.root, + restoreQueryExtension: config.experimental.importGlobRestoreExtension, + }) + : importGlobPlugin(config), ...postPlugins, diff --git a/packages/vite/src/node/plugins/resolve.ts b/packages/vite/src/node/plugins/resolve.ts index 703104bcab3a67..0b13e90acbd58b 100644 --- a/packages/vite/src/node/plugins/resolve.ts +++ b/packages/vite/src/node/plugins/resolve.ts @@ -3,6 +3,7 @@ import path from 'node:path' import { fileURLToPath } from 'node:url' import colors from 'picocolors' import type { PartialResolvedId } from 'rolldown' +import { viteResolvePlugin } from 'rolldown/experimental' import { exports, imports } from 'resolve.exports' import { hasESMSyntax } from 'mlly' import type { Plugin } from '../plugin' @@ -35,7 +36,7 @@ import { } from '../utils' import { optimizedDepInfoFromFile, optimizedDepInfoFromId } from '../optimizer' import type { DepsOptimizer } from '../optimizer' -import type { SSROptions } from '..' +import { type Environment, type SSROptions, perEnvironmentPlugin } from '..' import type { PackageCache, PackageData } from '../packages' import { canExternalizeFile, shouldExternalize } from '../external' import { @@ -51,6 +52,7 @@ import { splitFileAndPostfix, withTrailingSlash, } from '../../shared/utils' +import type { ResolvedConfig, ResolvedEnvironmentOptions } from '../config' const normalizedClientEntry = normalizePath(CLIENT_ENTRY) const normalizedEnvEntry = normalizePath(ENV_ENTRY) @@ -128,6 +130,10 @@ interface ResolvePluginOptions { isFromTsImporter?: boolean // True when resolving during the scan phase to discover dependencies scan?: boolean + /** + * @internal + */ + skipMainField?: boolean /** * Optimize deps during dev, defaults to false // TODO: Review default @@ -179,6 +185,270 @@ export interface ResolvePluginOptionsWithOverrides extends ResolveOptions, ResolvePluginOptions {} +const perEnvironmentOrWorkerPlugin = ( + name: string, + overrideEnvConfig: (ResolvedConfig & ResolvedEnvironmentOptions) | undefined, + f: (env: { + name: string + config: ResolvedConfig & ResolvedEnvironmentOptions + }) => Plugin, +): Plugin => { + if (overrideEnvConfig) { + return f({ name: 'client', config: overrideEnvConfig }) + } + return perEnvironmentPlugin(name, f) +} + +export function oxcResolvePlugin( + resolveOptions: ResolvePluginOptionsWithOverrides, + overrideEnvConfig: (ResolvedConfig & ResolvedEnvironmentOptions) | undefined, +): Plugin[] { + return [ + optimizerResolvePlugin(resolveOptions), + importGlobSubpathImportsResolvePlugin(resolveOptions), + perEnvironmentOrWorkerPlugin( + 'vite:resolve-builtin', + overrideEnvConfig, + (env) => { + const environment = env as Environment + // The resolve plugin is used for createIdResolver and the depsOptimizer should be + // disabled in that case, so deps optimization is opt-in when creating the plugin. + const depsOptimizer = + resolveOptions.optimizeDeps && environment?.mode === 'dev' + ? environment.depsOptimizer + : undefined + + const options: InternalResolveOptions = { + ...environment.config.resolve, + ...resolveOptions, // plugin options + resolve options overrides + } + const noExternal = + Array.isArray(options.noExternal) || options.noExternal === true + ? options.noExternal + : [options.noExternal] + + return viteResolvePlugin({ + resolveOptions: { + isBuild: options.isBuild, + isProduction: options.isProduction, + asSrc: options.asSrc ?? false, + preferRelative: options.preferRelative ?? false, + isRequire: options.isRequire, + root: options.root, + scan: options.scan ?? false, + + mainFields: options.skipMainField + ? options.mainFields + : options.mainFields.concat(['main']), + conditions: options.conditions, + externalConditions: options.externalConditions, + extensions: options.extensions, + tryIndex: options.tryIndex ?? true, + tryPrefix: options.tryPrefix, + preserveSymlinks: options.preserveSymlinks, + }, + environmentConsumer: environment.config.consumer, + environmentName: environment.name, + external: options.external, + noExternal: noExternal, + dedupe: options.dedupe, + finalizeBareSpecifier: !depsOptimizer + ? undefined + : (resolvedId, rawId, importer) => { + // if we reach here, it's a valid dep import that hasn't been optimized. + const isJsType = isOptimizable( + resolvedId, + depsOptimizer.options, + ) + const exclude = depsOptimizer?.options.exclude + + // check for deep import, e.g. "my-lib/foo" + const deepMatch = deepImportRE.exec(rawId) + // package name doesn't include postfixes + // trim them to support importing package with queries (e.g. `import css from 'normalize.css?inline'`) + const pkgId = deepMatch + ? deepMatch[1] || deepMatch[2] + : cleanUrl(rawId) + + const skipOptimization = + depsOptimizer.options.noDiscovery || + !isJsType || + (importer && isInNodeModules(importer)) || + exclude?.includes(pkgId) || + exclude?.includes(rawId) || + SPECIAL_QUERY_RE.test(resolvedId) + + let newId = resolvedId + if (skipOptimization) { + // excluded from optimization + // Inject a version query to npm deps so that the browser + // can cache it without re-validation, but only do so for known js types. + // otherwise we may introduce duplicated modules for externalized files + // from pre-bundled deps. + const versionHash = depsOptimizer!.metadata.browserHash + if (versionHash && isJsType) { + newId = injectQuery(newId, `v=${versionHash}`) + } + } else { + // this is a missing import, queue optimize-deps re-run and + // get a resolved its optimized info + const optimizedInfo = depsOptimizer!.registerMissingImport( + rawId, + newId, + ) + newId = depsOptimizer!.getOptimizedDepId(optimizedInfo) + } + return newId + }, + finalizeOtherSpecifiers: !depsOptimizer + ? undefined + : (resolvedId, rawId) => { + const newResolvedId = ensureVersionQuery( + resolvedId, + rawId, + options, + depsOptimizer, + ) + return newResolvedId === resolvedId ? undefined : newResolvedId + }, + }) + }, + ), + ] +} + +function optimizerResolvePlugin( + resolveOptions: ResolvePluginOptionsWithOverrides, +): Plugin { + const { root, asSrc } = resolveOptions + + return { + name: 'vite:resolve-dev', + apply: 'serve', + resolveId: { + filter: { + id: { + exclude: [ + /^\0/, + /^virtual:/, + // When injected directly in html/client code + /^\/virtual:/, + /^__vite-/, + ], + }, + }, + async handler(id, importer, resolveOpts) { + // The resolve plugin is used for createIdResolver and the depsOptimizer should be + // disabled in that case, so deps optimization is opt-in when creating the plugin. + const depsOptimizer = + resolveOptions.optimizeDeps && this.environment.mode === 'dev' + ? this.environment.depsOptimizer + : undefined + if (!depsOptimizer) { + return + } + + const options: InternalResolveOptions = { + isRequire: resolveOpts.kind === 'require-call', + ...this.environment.config.resolve, + ...resolveOptions, + scan: resolveOpts.scan ?? resolveOptions.scan, + } + options.preferRelative ||= importer?.endsWith('.html') + + // resolve pre-bundled deps requests, these could be resolved by + // tryFileResolve or /fs/ resolution but these files may not yet + // exists if we are in the middle of a deps re-processing + if (asSrc && depsOptimizer.isOptimizedDepUrl(id)) { + const optimizedPath = id.startsWith(FS_PREFIX) + ? fsPathFromId(id) + : normalizePath(path.resolve(root, id.slice(1))) + return optimizedPath + } + + if (!isDataUrl(id) && !isExternalUrl(id)) { + if ( + id[0] === '.' || + (options.preferRelative && startsWithWordCharRE.test(id)) + ) { + const basedir = importer ? path.dirname(importer) : root + const fsPath = path.resolve(basedir, id) + // handle browser field mapping for relative imports + + const normalizedFsPath = normalizePath(fsPath) + + if (depsOptimizer.isOptimizedDepFile(normalizedFsPath)) { + // Optimized files could not yet exist in disk, resolve to the full path + // Inject the current browserHash version if the path doesn't have one + if (!DEP_VERSION_RE.test(normalizedFsPath)) { + const browserHash = optimizedDepInfoFromFile( + depsOptimizer.metadata, + normalizedFsPath, + )?.browserHash + if (browserHash) { + return injectQuery(normalizedFsPath, `v=${browserHash}`) + } + } + return normalizedFsPath + } + } + + // bare package imports, perform node resolve + if (bareImportRE.test(id)) { + let res: string | PartialResolvedId | undefined + if ( + asSrc && + !options.scan && + (res = await tryOptimizedResolve( + depsOptimizer, + id, + importer, + options.preserveSymlinks, + options.packageCache, + )) + ) { + return res + } + } + } + }, + }, + } +} + +function importGlobSubpathImportsResolvePlugin( + resolveOptions: ResolvePluginOptionsWithOverrides, +): Plugin { + const { root } = resolveOptions + + return { + name: 'vite:resolve-import-glob-subpath-imports', + resolveId: { + filter: { + id: { + include: [/^#/], + }, + }, + handler(id, importer, resolveOpts) { + const options: InternalResolveOptions = { + isRequire: resolveOpts.kind === 'require-call', + ...this.environment.config.resolve, + ...resolveOptions, + scan: resolveOpts.scan ?? resolveOptions.scan, + } + options.preferRelative ||= importer?.endsWith('.html') + + if (resolveOpts.custom?.['vite:import-glob']?.isSubImportsPattern) { + const resolvedImports = resolveSubpathImports(id, importer, options) + if (resolvedImports) { + return normalizePath(path.join(root, resolvedImports)) + } + } + }, + }, + } +} + export function resolvePlugin( resolveOptions: ResolvePluginOptionsWithOverrides, ): Plugin { @@ -1033,25 +1303,39 @@ function packageEntryFailure(id: string, details?: string) { throw err } -function resolveExportsOrImports( - pkg: PackageData['data'], - key: string, - options: InternalResolveOptions, - type: 'imports' | 'exports', +function getConditions( + conditions: string[], + isProduction: boolean, + isRequire: boolean | undefined, ) { - const conditions = options.conditions.map((condition) => { + const resolvedConditions = conditions.map((condition) => { if (condition === DEV_PROD_CONDITION) { - return options.isProduction ? 'production' : 'development' + return isProduction ? 'production' : 'development' } return condition }) - if (options.isRequire) { - conditions.push('require') + if (isRequire) { + resolvedConditions.push('require') } else { - conditions.push('import') + resolvedConditions.push('import') } + return resolvedConditions +} + +function resolveExportsOrImports( + pkg: PackageData['data'], + key: string, + options: InternalResolveOptions, + type: 'imports' | 'exports', +) { + const conditions = getConditions( + options.conditions, + options.isProduction, + options.isRequire, + ) + const fn = type === 'imports' ? imports : exports const result = fn(pkg, key, { conditions, unsafe: true }) return result ? result[0] : undefined diff --git a/playground/resolve/__tests__/resolve.spec.ts b/playground/resolve/__tests__/resolve.spec.ts index d5d11f4a7b08ce..a766a19dd50280 100644 --- a/playground/resolve/__tests__/resolve.spec.ts +++ b/playground/resolve/__tests__/resolve.spec.ts @@ -139,11 +139,13 @@ test('Resolve browser field even if module field exists', async () => { expect(await page.textContent('.browser-module1')).toMatch('[success]') }) -test('Resolve module field if browser field is likely UMD or CJS', async () => { +// should not fallback +test.skip('Resolve module field if browser field is likely UMD or CJS', async () => { expect(await page.textContent('.browser-module2')).toMatch('[success]') }) -test('Resolve module field if browser field is likely IIFE', async () => { +// should not fallback +test.skip('Resolve module field if browser field is likely IIFE', async () => { expect(await page.textContent('.browser-module3')).toMatch('[success]') }) diff --git a/playground/resolve/browser-field/relative.js b/playground/resolve/browser-field/relative.js index 660d6be578a728..6b45c5758d37dd 100644 --- a/playground/resolve/browser-field/relative.js +++ b/playground/resolve/browser-field/relative.js @@ -4,7 +4,6 @@ import rb from './no-ext.js' // no substitution import rc from './ext' import rd from './ext.js' import re from './ext-index/index.js' -import rf from './ext-index' -import rg from './no-ext-index/index.js' // no substitution +import rf from './no-ext-index/index.js' // no substitution -export { ra, rb, rc, rd, re, rf, rg } +export { ra, rb, rc, rd, re, rf } diff --git a/playground/resolve/index.html b/playground/resolve/index.html index 1b5cd5ae76a3fd..93918cf3183f4f 100644 --- a/playground/resolve/index.html +++ b/playground/resolve/index.html @@ -322,7 +322,8 @@

utf8-bom-package

import c from '@vitejs/test-resolve-browser-field/ext' import d from '@vitejs/test-resolve-browser-field/ext.js' import e from '@vitejs/test-resolve-browser-field/ext-index/index.js' - import f from '@vitejs/test-resolve-browser-field/ext-index' + // webpack does not support this case, so should be fine + // import f from '@vitejs/test-resolve-browser-field/ext-index' import g from '@vitejs/test-resolve-browser-field/no-ext-index/index.js' // no substitution import h from '@vitejs/test-resolve-browser-field/no-ext?query' import i from '@vitejs/test-resolve-browser-field/bare-import' @@ -334,11 +335,10 @@

utf8-bom-package

rd, re, rf, - rg, } from '@vitejs/test-resolve-browser-field/relative' - const success = [main, a, c, d, e, f, h, i, ra, rc, rd, re, rf] - const noSuccess = [b, g, rb, rg] + const success = [main, a, c, d, e, h, i, ra, rc, rd, re] + const noSuccess = [b, g, rb, rf] if ( [...success, ...noSuccess].filter((text) => text.includes('[success]')) @@ -350,11 +350,13 @@

utf8-bom-package

import browserModule1 from '@vitejs/test-resolve-browser-module-field1' text('.browser-module1', browserModule1) - import browserModule2 from '@vitejs/test-resolve-browser-module-field2' - text('.browser-module2', browserModule2) + // should not fallback + // import browserModule2 from '@vitejs/test-resolve-browser-module-field2' + // text('.browser-module2', browserModule2) - import browserModule3 from '@vitejs/test-resolve-browser-module-field3' - text('.browser-module3', browserModule3) + // should not fallback + // import browserModule3 from '@vitejs/test-resolve-browser-module-field3' + // text('.browser-module3', browserModule3) import { msg as requireButWithModuleFieldMsg } from '@vitejs/test-require-pkg-with-module-field' text('.require-pkg-with-module-field', requireButWithModuleFieldMsg) From eb642a23d33d2aeae501ef6b3795a511693af788 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Fri, 7 Mar 2025 23:23:02 +0900 Subject: [PATCH 015/102] fix: buffer full reload messages --- packages/vite/src/node/server/ws.ts | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/packages/vite/src/node/server/ws.ts b/packages/vite/src/node/server/ws.ts index 3fd6edea26d96c..583a68457c8a2b 100644 --- a/packages/vite/src/node/server/ws.ts +++ b/packages/vite/src/node/server/ws.ts @@ -10,7 +10,11 @@ import colors from 'picocolors' import type { WebSocket as WebSocketRaw } from 'ws' import { WebSocketServer as WebSocketServerRaw_ } from 'ws' import type { WebSocket as WebSocketTypes } from 'dep-types/ws' -import type { ErrorPayload, HotPayload } from 'types/hmrPayload' +import type { + ErrorPayload, + FullReloadPayload, + HotPayload, +} from 'types/hmrPayload' import type { InferCustomEventPayload } from 'types/customEvent' import type { ResolvedConfig } from '..' import { isObject } from '../utils' @@ -297,9 +301,9 @@ export function createWebSocketServer( }) }) socket.send(JSON.stringify({ type: 'connected' })) - if (bufferedError) { - socket.send(JSON.stringify(bufferedError)) - bufferedError = null + if (bufferedMessage) { + socket.send(JSON.stringify(bufferedMessage)) + bufferedMessage = null } }) @@ -345,13 +349,18 @@ export function createWebSocketServer( // sends the error payload before the client connection is established. // If we have no open clients, buffer the error and send it to the next // connected client. - let bufferedError: ErrorPayload | null = null + // The same thing may happen when the optimizer runs fast enough to + // finish the bundling before the client connects. + let bufferedMessage: ErrorPayload | FullReloadPayload | null = null const normalizedHotChannel = normalizeHotChannel( { send(payload) { - if (payload.type === 'error' && !wss.clients.size) { - bufferedError = payload + if ( + (payload.type === 'error' || payload.type === 'full-reload') && + !wss.clients.size + ) { + bufferedMessage = payload return } From 228a59991bcf2c0f618f8970f3a1cc7b8638ad38 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Fri, 7 Mar 2025 23:24:57 +0900 Subject: [PATCH 016/102] chore: enable continuous release Co-Authored-By: Evan You --- .github/workflows/preview-release.yml | 6 +++--- packages/vite/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/preview-release.yml b/.github/workflows/preview-release.yml index d8f69025d7493b..9c332794654a11 100644 --- a/.github/workflows/preview-release.yml +++ b/.github/workflows/preview-release.yml @@ -10,14 +10,14 @@ permissions: on: push: branches: - - main + - rolldown-vite pull_request: types: [opened, synchronize, labeled] jobs: preview: if: > - github.repository == 'vitejs/vite' && + github.repository == 'vitejs/rolldown-vite' && (github.event_name == 'push' || (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'trigger: preview'))) runs-on: ubuntu-latest @@ -35,4 +35,4 @@ jobs: working-directory: ./packages/vite run: pnpm build - - run: pnpm dlx pkg-pr-new@0.0 publish --compact --pnpm ./packages/vite + - run: pnpm dlx pkg-pr-new@0.0 publish --pnpm ./packages/vite diff --git a/packages/vite/package.json b/packages/vite/package.json index 1a1a368e25803a..f3c991d4329694 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -4,7 +4,7 @@ "type": "module", "license": "MIT", "author": "Evan You", - "description": "Native-ESM powered web dev build tool", + "description": "Vite on Rolldown preview", "bin": { "vite": "bin/vite.js" }, From d066bed940b5a43049b61a42a15eaffdb588228d Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 10 Mar 2025 17:38:22 +0900 Subject: [PATCH 017/102] fix: remove duplicate `createRequire` in optimizer (#86) --- packages/vite/src/node/optimizer/index.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/vite/src/node/optimizer/index.ts b/packages/vite/src/node/optimizer/index.ts index 8d1bfa89776170..4a4ceb555acb0e 100644 --- a/packages/vite/src/node/optimizer/index.ts +++ b/packages/vite/src/node/optimizer/index.ts @@ -813,10 +813,6 @@ async function prepareRolldownOptimizerRun( sourcemap: true, dir: processingCacheDir, entryFileNames: '[name].js', - banner: - platform === 'node' - ? `import { createRequire } from 'module';const require = createRequire(import.meta.url);` - : undefined, }) await bundle.close() return result From 7450fb8646c783ffff597e62d91cc9355df07f0a Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Mon, 10 Mar 2025 18:46:37 +0900 Subject: [PATCH 018/102] chore: set `ROLLDOWN_OPTIONS_VALIDATION=loose` for vitepress --- docs/.vitepress/config.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 405d86902fd5d3..c1f4c6dfce7d22 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -7,6 +7,9 @@ import { } from 'vitepress-plugin-group-icons' import { buildEnd } from './buildEnd.config' +// NOTE: allow additional options to be passed to rolldown for now +process.env.ROLLDOWN_OPTIONS_VALIDATION = 'loose' + const ogDescription = 'Next Generation Frontend Tooling' const ogImage = 'https://vite.dev/og-image.jpg' const ogTitle = 'Vite' From de29115e9b28215dae80e106084512d1656bc7f7 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Mon, 17 Mar 2025 12:56:19 +0900 Subject: [PATCH 019/102] fix(optimizer): externalize as absolute --- .../vite/src/node/optimizer/rolldownDepPlugin.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/vite/src/node/optimizer/rolldownDepPlugin.ts b/packages/vite/src/node/optimizer/rolldownDepPlugin.ts index 97f07349c6f13a..78f29a404c3343 100644 --- a/packages/vite/src/node/optimizer/rolldownDepPlugin.ts +++ b/packages/vite/src/node/optimizer/rolldownDepPlugin.ts @@ -123,7 +123,7 @@ export function rolldownDepPlugin( if (isExternalUrl(resolved)) { return { id: resolved, - external: true, + external: 'absolute', } } return { @@ -157,7 +157,7 @@ export function rolldownDepPlugin( if (id.startsWith(convertedExternalPrefix)) { return { id: id.slice(convertedExternalPrefix.length), - external: true, + external: 'absolute', } } @@ -182,7 +182,7 @@ export function rolldownDepPlugin( } return { id: resolved, - external: true, + external: 'absolute', } } }, @@ -220,7 +220,7 @@ export function rolldownDepPlugin( if (moduleListContains(external, id)) { return { id: id, - external: true, + external: 'absolute', } } @@ -329,7 +329,7 @@ export function rolldownCjsExternalPlugin( if (id.startsWith(nonFacadePrefix)) { return { id: id.slice(nonFacadePrefix.length), - external: true, + external: 'absolute', } } @@ -344,7 +344,7 @@ export function rolldownCjsExternalPlugin( return { id, - external: true, + external: 'absolute', } } }, From af0d4d541a53a8b1eafd9ac0d9a5ef1cdf4c093c Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Mon, 17 Mar 2025 15:52:37 +0900 Subject: [PATCH 020/102] ci: update workflows --- .github/workflows/issue-close-require.yml | 2 +- .github/workflows/issue-labeled.yml | 2 +- .github/workflows/publish.yml | 2 +- .github/workflows/release-tag.yml | 4 ++-- .github/workflows/semantic-pull-request.yml | 2 +- package.json | 2 +- packages/vite/package.json | 2 +- packages/vite/src/node/__tests__/config.spec.ts | 2 +- pnpm-lock.yaml | 16 ++++++++-------- scripts/publishCI.ts | 6 +++++- scripts/release.ts | 6 ++++-- scripts/releaseUtils.ts | 2 +- 12 files changed, 27 insertions(+), 21 deletions(-) diff --git a/.github/workflows/issue-close-require.yml b/.github/workflows/issue-close-require.yml index 154b630c8187c7..08f6ea6377cbc8 100644 --- a/.github/workflows/issue-close-require.yml +++ b/.github/workflows/issue-close-require.yml @@ -6,7 +6,7 @@ on: jobs: close-issues: - if: github.repository == 'vitejs/vite' + if: github.repository == 'vitejs/rolldown-vite' runs-on: ubuntu-latest permissions: issues: write # for actions-cool/issues-helper to update issues diff --git a/.github/workflows/issue-labeled.yml b/.github/workflows/issue-labeled.yml index 17261b0d8fa285..d341b52131a6a2 100644 --- a/.github/workflows/issue-labeled.yml +++ b/.github/workflows/issue-labeled.yml @@ -6,7 +6,7 @@ on: jobs: reply-labeled: - if: github.repository == 'vitejs/vite' + if: github.repository == 'vitejs/rolldown-vite' runs-on: ubuntu-latest permissions: issues: write # for actions-cool/issues-helper to update issues diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f492d23b13c0c7..2dbb377abc2aab 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -10,7 +10,7 @@ on: jobs: publish: # prevents this action from running on forks - if: github.repository == 'vitejs/vite' + if: github.repository == 'vitejs/rolldown-vite' runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/release-tag.yml b/.github/workflows/release-tag.yml index abe08ab5789128..0fa0fb4fd0b1f4 100644 --- a/.github/workflows/release-tag.yml +++ b/.github/workflows/release-tag.yml @@ -11,7 +11,7 @@ on: jobs: release: - if: github.repository == 'vitejs/vite' + if: github.repository == 'vitejs/rolldown-vite' runs-on: ubuntu-latest permissions: contents: write # for yyx990803/release-tag to create a release tag @@ -47,4 +47,4 @@ jobs: with: tag_name: ${{ github.ref }} body: | - Please refer to [CHANGELOG.md](https://github.com/vitejs/vite/blob/${{ github.ref_name }}/packages/${{ steps.tag.outputs.pkgName }}/CHANGELOG.md) for details. + Please refer to [CHANGELOG.md](https://github.com/vitejs/rolldown-vite/blob/${{ github.ref_name }}/packages/${{ steps.tag.outputs.pkgName }}/CHANGELOG.md) for details. diff --git a/.github/workflows/semantic-pull-request.yml b/.github/workflows/semantic-pull-request.yml index bdd19a40f75ce9..aa71534caa97aa 100644 --- a/.github/workflows/semantic-pull-request.yml +++ b/.github/workflows/semantic-pull-request.yml @@ -9,7 +9,7 @@ on: jobs: main: - if: github.repository == 'vitejs/vite' + if: github.repository == 'vitejs/rolldown-vite' runs-on: ubuntu-latest name: Semantic Pull Request permissions: diff --git a/package.json b/package.json index 9f52e5ba1a89fb..ccd944866ff48a 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,7 @@ "packageManager": "pnpm@10.6.3", "pnpm": { "overrides": { - "vite": "workspace:*" + "vite": "workspace:rolldown-vite@*" }, "patchedDependencies": { "http-proxy@1.18.1": "patches/http-proxy@1.18.1.patch", diff --git a/packages/vite/package.json b/packages/vite/package.json index f3c991d4329694..22fb05a88078be 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,5 +1,5 @@ { - "name": "vite", + "name": "rolldown-vite", "version": "6.3.0-beta.0", "type": "module", "license": "MIT", diff --git a/packages/vite/src/node/__tests__/config.spec.ts b/packages/vite/src/node/__tests__/config.spec.ts index 0a9a4caff03504..6dc81d8529917c 100644 --- a/packages/vite/src/node/__tests__/config.spec.ts +++ b/packages/vite/src/node/__tests__/config.spec.ts @@ -754,7 +754,7 @@ describe('loadConfigFromFile', () => { ))! expect(config).toMatchInlineSnapshot(` { - "jsonValue": "vite", + "jsonValue": "rolldown-vite", } `) }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6b6913c1dec860..232917572ab5a4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,7 +5,7 @@ settings: excludeLinksFromLockfile: false overrides: - vite: workspace:* + vite: workspace:rolldown-vite@* packageExtensionsChecksum: sha256-BLDZCgUIohvBXMHo3XFOlGLzGXRyK3sDU0nMBRk9APY= @@ -136,7 +136,7 @@ importers: specifier: ^8.26.1 version: 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) vite: - specifier: workspace:* + specifier: workspace:rolldown-vite@* version: link:packages/vite vitest: specifier: ^3.0.8 @@ -218,7 +218,7 @@ importers: specifier: ^3.5.0 version: 3.5.0(sass@1.85.1)(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)) vite: - specifier: workspace:* + specifier: workspace:rolldown-vite@* version: link:../vite packages/vite: @@ -762,7 +762,7 @@ importers: specifier: npm:slash@^5.1.0 version: slash@5.1.0 vite: - specifier: workspace:* + specifier: workspace:rolldown-vite@* version: link:../../packages/vite vue: specifier: ^3.5.13 @@ -862,7 +862,7 @@ importers: specifier: ^5.39.0 version: 5.39.0 vite: - specifier: workspace:* + specifier: workspace:rolldown-vite@* version: link:../../packages/vite playground/lib: @@ -3285,7 +3285,7 @@ packages: '@tailwindcss/vite@4.0.14': resolution: {integrity: sha512-y69ztPTRFy+13EPS/7dEFVl7q2Goh1pQueVO8IfGeyqSpcx/joNJXFk0lLhMgUbF0VFJotwRSb9ZY7Xoq3r26Q==} peerDependencies: - vite: workspace:* + vite: workspace:rolldown-vite@* '@trysound/sax@0.2.0': resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} @@ -3550,7 +3550,7 @@ packages: resolution: {integrity: sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - vite: workspace:* + vite: workspace:rolldown-vite@* vue: ^3.2.25 '@vitejs/release-scripts@1.3.3': @@ -3819,7 +3819,7 @@ packages: resolution: {integrity: sha512-n3LjS7fcW1BCoF+zWZxG7/5XvuYH+lsFg+BDwwAz0arIwHQJFUEsKBQ0BLU49fCxuM/2HSeBPHQD8WjgrxMfow==} peerDependencies: msw: ^2.4.9 - vite: workspace:* + vite: workspace:rolldown-vite@* peerDependenciesMeta: msw: optional: true diff --git a/scripts/publishCI.ts b/scripts/publishCI.ts index 5f40df369374b0..21bc3289c1589d 100644 --- a/scripts/publishCI.ts +++ b/scripts/publishCI.ts @@ -1,3 +1,7 @@ import { publish } from '@vitejs/release-scripts' -publish({ defaultPackage: 'vite', provenance: true, packageManager: 'pnpm' }) +publish({ + defaultPackage: 'rolldown-vite', + provenance: true, + packageManager: 'pnpm', +}) diff --git a/scripts/release.ts b/scripts/release.ts index 5cff4816336824..1cd2ac30f60d7b 100644 --- a/scripts/release.ts +++ b/scripts/release.ts @@ -8,9 +8,11 @@ release({ packages: ['vite', 'create-vite', 'plugin-legacy'], toTag: (pkg, version) => pkg === 'vite' ? `v${version}` : `${pkg}@${version}`, - logChangelog: (pkg) => logRecentCommits(pkg), + logChangelog: (pkg) => + logRecentCommits(pkg === 'vite' ? 'rolldown-vite' : pkg), generateChangelog: async (pkgName) => { - if (pkgName === 'create-vite') await updateTemplateVersions() + if (pkgName === 'create-vite' || pkgName === 'vite') + await updateTemplateVersions() console.log(colors.cyan('\nGenerating changelog...')) const changelogArgs = [ diff --git a/scripts/releaseUtils.ts b/scripts/releaseUtils.ts index 6391bcfc94034e..bbb7b2bd9a22c6 100644 --- a/scripts/releaseUtils.ts +++ b/scripts/releaseUtils.ts @@ -64,7 +64,7 @@ export async function updateTemplateVersions(): Promise { for (const template of templates) { const pkgPath = path.join(dir, template, `package.json`) const pkg = JSON.parse(await fs.readFile(pkgPath, 'utf-8')) - pkg.devDependencies.vite = `^` + viteVersion + pkg.devDependencies.vite = `npm:rolldown-vite@^` + viteVersion await fs.writeFile(pkgPath, JSON.stringify(pkg, null, 2) + '\n') } } From 140ccea0d0ccb519727485a0345205354a3de136 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Tue, 25 Mar 2025 20:52:59 +0900 Subject: [PATCH 021/102] chore: update LICENSE --- packages/vite/LICENSE.md | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/packages/vite/LICENSE.md b/packages/vite/LICENSE.md index 67c6039dfd85fc..1e204853d8d122 100644 --- a/packages/vite/LICENSE.md +++ b/packages/vite/LICENSE.md @@ -1020,21 +1020,6 @@ Repository: git://github.com/primus/eventemitter3.git --------------------------------------- -## fdir -License: MIT -By: thecodrr -Repository: git+https://github.com/thecodrr/fdir.git - -> Copyright 2023 Abdullah Atta -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ---------------------------------------- - ## finalhandler License: MIT By: Douglas Christopher Wilson From 486a056e0b43993b02ddc9d5f01229f17fccb8f3 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Wed, 26 Mar 2025 14:12:39 +0900 Subject: [PATCH 022/102] fix: vite dir --- packages/vite/src/node/plugins/oxc.ts | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/packages/vite/src/node/plugins/oxc.ts b/packages/vite/src/node/plugins/oxc.ts index 1cdb210e429d63..1b0e3bbe99df99 100644 --- a/packages/vite/src/node/plugins/oxc.ts +++ b/packages/vite/src/node/plugins/oxc.ts @@ -1,6 +1,5 @@ import path from 'node:path' import url from 'node:url' -import { createRequire } from 'node:module' import type { TransformOptions as OxcTransformOptions, TransformResult as OxcTransformResult, @@ -526,23 +525,11 @@ export function resolveOxcTranspileOptions( } } -let viteDir: string -function getViteDir() { - if (!viteDir) { - let dir = createRequire(import.meta.url).resolve('vite') - while (dir && path.basename(dir) !== 'vite') { - dir = path.dirname(dir) - } - viteDir = dir - } - return viteDir -} - async function generateRuntimeHelpers( runtimeHelpers: readonly [string, string][], ): Promise { const bundle = await rolldown({ - cwd: getViteDir(), + cwd: url.fileURLToPath(import.meta.url), input: 'entrypoint', platform: 'neutral', logLevel: 'silent', From 42026c349b8b5206f283c1bb94d13f108fb9545e Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Wed, 26 Mar 2025 15:13:03 +0900 Subject: [PATCH 023/102] release: v6.3.0-beta.0 From 3b6e9f334328061eb6b50f52d6cff918b33cd0bd Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Wed, 26 Mar 2025 15:15:58 +0900 Subject: [PATCH 024/102] chore: fix publish workflow --- scripts/publishCI.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/publishCI.ts b/scripts/publishCI.ts index 21bc3289c1589d..e12c29374f904b 100644 --- a/scripts/publishCI.ts +++ b/scripts/publishCI.ts @@ -1,7 +1,7 @@ import { publish } from '@vitejs/release-scripts' publish({ - defaultPackage: 'rolldown-vite', + defaultPackage: 'vite', provenance: true, packageManager: 'pnpm', }) From 3a172908088c3271820ae04ee8e217ef5b046df5 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Wed, 26 Mar 2025 15:16:58 +0900 Subject: [PATCH 025/102] chore: fix publish workflow --- scripts/release.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/release.ts b/scripts/release.ts index 1cd2ac30f60d7b..a2f60178401b58 100644 --- a/scripts/release.ts +++ b/scripts/release.ts @@ -8,8 +8,7 @@ release({ packages: ['vite', 'create-vite', 'plugin-legacy'], toTag: (pkg, version) => pkg === 'vite' ? `v${version}` : `${pkg}@${version}`, - logChangelog: (pkg) => - logRecentCommits(pkg === 'vite' ? 'rolldown-vite' : pkg), + logChangelog: (pkg) => logRecentCommits(pkg), generateChangelog: async (pkgName) => { if (pkgName === 'create-vite' || pkgName === 'vite') await updateTemplateVersions() From 43449aebe0714e64a76cd225207971d2dd6b882b Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Wed, 26 Mar 2025 15:18:33 +0900 Subject: [PATCH 026/102] release: v6.3.0-beta.1 --- packages/vite/CHANGELOG.md | 5 +++++ packages/vite/package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index 81a1224992bcbf..528b807923c4e9 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,8 @@ +## 6.3.0-beta.1 (2025-03-26) + + + + ## 6.3.0-beta.0 (2025-03-26) * feat: implement hook filters (#19602) ([04d58b4](https://github.com/vitejs/vite/commit/04d58b42ae69547f04ef8fcd574b1ee1b654dc32)), closes [#19602](https://github.com/vitejs/vite/issues/19602) diff --git a/packages/vite/package.json b/packages/vite/package.json index 22fb05a88078be..d585f7396c0d98 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "rolldown-vite", - "version": "6.3.0-beta.0", + "version": "6.3.0-beta.1", "type": "module", "license": "MIT", "author": "Evan You", From fbaeca32d34396cfd4fbdac21552872462704887 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Wed, 26 Mar 2025 15:45:31 +0900 Subject: [PATCH 027/102] chore: fix publish workflow --- packages/vite/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index d585f7396c0d98..eb902e7e81d9f1 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -62,11 +62,11 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/vitejs/vite.git", + "url": "git+https://github.com/vitejs/rolldown-vite.git", "directory": "packages/vite" }, "bugs": { - "url": "https://github.com/vitejs/vite/issues" + "url": "https://github.com/vitejs/rolldown-vite/issues" }, "homepage": "https://vite.dev", "funding": "https://github.com/vitejs/vite?sponsor=1", From 8f2832fbdf592b1a9dcf73af51c1b8ba39b91b7d Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Wed, 26 Mar 2025 15:46:00 +0900 Subject: [PATCH 028/102] release: v6.3.0-beta.2 --- packages/vite/CHANGELOG.md | 6 ++++++ packages/vite/package.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index 528b807923c4e9..6126604853ffaf 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,9 @@ +## 6.3.0-beta.2 (2025-03-26) + +* chore: fix publish workflow ([fbaeca3](https://github.com/vitejs/rolldown-vite/commit/fbaeca3)) + + + ## 6.3.0-beta.1 (2025-03-26) diff --git a/packages/vite/package.json b/packages/vite/package.json index eb902e7e81d9f1..38ae57cfe4b499 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "rolldown-vite", - "version": "6.3.0-beta.1", + "version": "6.3.0-beta.2", "type": "module", "license": "MIT", "author": "Evan You", From 6556550a81d4b87023057aaf106b2560c1b84adb Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Wed, 26 Mar 2025 15:52:07 +0900 Subject: [PATCH 029/102] chore: update create-vite versions --- packages/create-vite/template-lit-ts/package.json | 2 +- packages/create-vite/template-lit/package.json | 2 +- packages/create-vite/template-preact-ts/package.json | 2 +- packages/create-vite/template-preact/package.json | 2 +- packages/create-vite/template-qwik-ts/package.json | 2 +- packages/create-vite/template-qwik/package.json | 2 +- packages/create-vite/template-react-ts/package.json | 2 +- packages/create-vite/template-react/package.json | 2 +- packages/create-vite/template-solid-ts/package.json | 2 +- packages/create-vite/template-solid/package.json | 2 +- packages/create-vite/template-svelte-ts/package.json | 2 +- packages/create-vite/template-svelte/package.json | 2 +- packages/create-vite/template-vanilla-ts/package.json | 2 +- packages/create-vite/template-vanilla/package.json | 2 +- packages/create-vite/template-vue-ts/package.json | 2 +- packages/create-vite/template-vue/package.json | 2 +- 16 files changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/create-vite/template-lit-ts/package.json b/packages/create-vite/template-lit-ts/package.json index 123aa8662115a9..dc5f6178df71ff 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.2.2" + "vite": "npm:rolldown-vite@^6.3.0-beta.1" } } diff --git a/packages/create-vite/template-lit/package.json b/packages/create-vite/template-lit/package.json index 4160ece297a156..da567402ca9517 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.2.2" + "vite": "npm:rolldown-vite@^6.3.0-beta.1" } } diff --git a/packages/create-vite/template-preact-ts/package.json b/packages/create-vite/template-preact-ts/package.json index 50b86aa41e3979..2a918fc3d5e0b5 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.2.2" + "vite": "npm:rolldown-vite@^6.3.0-beta.1" } } diff --git a/packages/create-vite/template-preact/package.json b/packages/create-vite/template-preact/package.json index f61ca03aa26775..b01d0f6cc72e93 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.2.2" + "vite": "npm:rolldown-vite@^6.3.0-beta.1" } } diff --git a/packages/create-vite/template-qwik-ts/package.json b/packages/create-vite/template-qwik-ts/package.json index 6d64db2b2050e7..9ebb3f5eecdfb3 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.2.2" + "vite": "npm:rolldown-vite@^6.3.0-beta.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 c718169e9697bd..df6a96ba917b62 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.2.2" + "vite": "npm:rolldown-vite@^6.3.0-beta.1" }, "dependencies": { "@builder.io/qwik": "^1.12.1" diff --git a/packages/create-vite/template-react-ts/package.json b/packages/create-vite/template-react-ts/package.json index 17ba422c51f007..cf45d813c397b0 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.2.2" + "vite": "npm:rolldown-vite@^6.3.0-beta.1" } } diff --git a/packages/create-vite/template-react/package.json b/packages/create-vite/template-react/package.json index 7a6b2d4bee8fe9..53b97246bbd466 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.2.2" + "vite": "npm:rolldown-vite@^6.3.0-beta.1" } } diff --git a/packages/create-vite/template-solid-ts/package.json b/packages/create-vite/template-solid-ts/package.json index 33ecce3f699684..091cdc7d2c6335 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.2.2", + "vite": "npm:rolldown-vite@^6.3.0-beta.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 907ccf0ca29cfa..e32d425573a5ab 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.2.2", + "vite": "npm:rolldown-vite@^6.3.0-beta.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 a21e4af10ab6cf..88aad128684a66 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.2.2" + "vite": "npm:rolldown-vite@^6.3.0-beta.1" } } diff --git a/packages/create-vite/template-svelte/package.json b/packages/create-vite/template-svelte/package.json index b1f471279bba73..12c186d75b1683 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.2.2" + "vite": "npm:rolldown-vite@^6.3.0-beta.1" } } diff --git a/packages/create-vite/template-vanilla-ts/package.json b/packages/create-vite/template-vanilla-ts/package.json index e444722c276697..8535eddb3554d4 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.2.2" + "vite": "npm:rolldown-vite@^6.3.0-beta.1" } } diff --git a/packages/create-vite/template-vanilla/package.json b/packages/create-vite/template-vanilla/package.json index e3d0a6af7ac5cf..164f42b5dc97ea 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.2.2" + "vite": "npm:rolldown-vite@^6.3.0-beta.1" } } diff --git a/packages/create-vite/template-vue-ts/package.json b/packages/create-vite/template-vue-ts/package.json index 4d44b6e4f4bb5f..a34e26b59a5118 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.2.2", + "vite": "npm:rolldown-vite@^6.3.0-beta.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 41eb4fd60e1adb..1567fe2e5aed29 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.2.2" + "vite": "npm:rolldown-vite@^6.3.0-beta.1" } } From bbddbf05100a53ce5353670997197ed2c32ac364 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Wed, 26 Mar 2025 15:55:24 +0900 Subject: [PATCH 030/102] chore: update stackblitz link --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- .github/ISSUE_TEMPLATE/docs.yml | 2 +- .github/workflows/issue-labeled.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 4e09ca1dd13b0e..7e358defc3b332 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -19,7 +19,7 @@ body: id: reproduction attributes: label: Reproduction - description: Please provide a link via [vite.new](https://vite.new/) or a link to a repo that can reproduce the problem you ran into. `npm create vite@latest` and `npm create vite-extra@latest` (for SSR or library repros) can be used as a starter template. A [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) is required ([Why?](https://antfu.me/posts/why-reproductions-are-required)). If a report is vague (e.g. just a generic error message) and has no reproduction, it will receive a "needs reproduction" label. If no reproduction is provided after 3 days, it will be auto-closed. + description: Please provide a link via [StackBlitz](https://stackblitz.com/fork/github/vitejs/rolldown-vite/tree/rolldown-vite/packages/create-vite/template-vanilla) or a link to a repo that can reproduce the problem you ran into. `npm create vite@latest` and `npm create vite-extra@latest` (for SSR or library repros) can be used as a starter template. A [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) is required ([Why?](https://antfu.me/posts/why-reproductions-are-required)). If a report is vague (e.g. just a generic error message) and has no reproduction, it will receive a "needs reproduction" label. If no reproduction is provided after 3 days, it will be auto-closed. placeholder: Reproduction URL validations: required: true diff --git a/.github/ISSUE_TEMPLATE/docs.yml b/.github/ISSUE_TEMPLATE/docs.yml index ef629b96596663..5c8175588107f5 100644 --- a/.github/ISSUE_TEMPLATE/docs.yml +++ b/.github/ISSUE_TEMPLATE/docs.yml @@ -33,7 +33,7 @@ body: id: reproduction attributes: label: Reproduction - description: If you have a reproduction, please provide a link via [vite.new](https://vite.new/) or a link to a repo that can reproduce the problem you ran into. `npm create vite@latest` and `npm create vite-extra@latest` (for SSR or library repros) can be used as a starter template. + description: If you have a reproduction, please provide a link via [StackBlitz](https://stackblitz.com/fork/github/vitejs/rolldown-vite/tree/rolldown-vite/packages/create-vite/template-vanilla) or a link to a repo that can reproduce the problem you ran into. `npm create vite@latest` and `npm create vite-extra@latest` (for SSR or library repros) can be used as a starter template. placeholder: Reproduction URL - type: textarea id: reproduction-steps diff --git a/.github/workflows/issue-labeled.yml b/.github/workflows/issue-labeled.yml index d341b52131a6a2..28312915bdb758 100644 --- a/.github/workflows/issue-labeled.yml +++ b/.github/workflows/issue-labeled.yml @@ -38,5 +38,5 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} issue-number: ${{ github.event.issue.number }} body: | - Hello @${{ github.event.issue.user.login }}. Please provide a [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) using a GitHub repository or [StackBlitz](https://vite.new). Issues marked with `needs reproduction` will be closed if they have no activity within 3 days. + Hello @${{ github.event.issue.user.login }}. Please provide a [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) using a GitHub repository or [StackBlitz](https://stackblitz.com/fork/github/vitejs/rolldown-vite/tree/rolldown-vite/packages/create-vite/template-vanilla). Issues marked with `needs reproduction` will be closed if they have no activity within 3 days. labels: "pending triage" From 1851a57ba4a5f5edb6cc1a82ad986a3eb9bbd5b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Thu, 27 Mar 2025 12:27:45 +0900 Subject: [PATCH 031/102] fix(transform): merge tsconfig jsx options with oxc jsx options correctly (#90) --- packages/vite/src/node/plugins/oxc.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/vite/src/node/plugins/oxc.ts b/packages/vite/src/node/plugins/oxc.ts index 1b0e3bbe99df99..e690193837c77e 100644 --- a/packages/vite/src/node/plugins/oxc.ts +++ b/packages/vite/src/node/plugins/oxc.ts @@ -91,20 +91,24 @@ export async function transformWithOxc( // when both the normal options and tsconfig is set, // we want to prioritize the normal options - if (resolvedOptions.jsx === undefined) { + if ( + resolvedOptions.jsx === undefined || + (typeof resolvedOptions.jsx === 'object' && + resolvedOptions.jsx.runtime === undefined) + ) { if (loadedCompilerOptions.jsx === 'preserve') { resolvedOptions.jsx = 'preserve' } else { - const jsxOptions: OxcJsxOptions = {} + const jsxOptions: OxcJsxOptions = { ...resolvedOptions.jsx } if (loadedCompilerOptions.jsxFactory) { - jsxOptions.pragma = loadedCompilerOptions.jsxFactory + jsxOptions.pragma ??= loadedCompilerOptions.jsxFactory } if (loadedCompilerOptions.jsxFragmentFactory) { - jsxOptions.pragmaFrag = loadedCompilerOptions.jsxFragmentFactory + jsxOptions.pragmaFrag ??= loadedCompilerOptions.jsxFragmentFactory } if (loadedCompilerOptions.jsxImportSource) { - jsxOptions.importSource = loadedCompilerOptions.jsxImportSource + jsxOptions.importSource ??= loadedCompilerOptions.jsxImportSource } switch (loadedCompilerOptions.jsx) { From 0fc1af82747f77bcad4430f19899d19078c2e81c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Thu, 27 Mar 2025 16:41:56 +0900 Subject: [PATCH 032/102] fix(optimizer): derive `resolve.symlinks` option properly (#91) --- packages/vite/src/node/config.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index 3656565391ecd5..3e3b0133019757 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -1103,7 +1103,13 @@ function resolveDepOptimizationOptions( } } } - setResolveOptions('symlinks', optimizeDeps.esbuildOptions.preserveSymlinks) + if ( + optimizeDeps.esbuildOptions.preserveSymlinks !== undefined && + optimizeDeps.rollupOptions.resolve.symlinks === undefined + ) { + optimizeDeps.rollupOptions.resolve.symlinks = + !optimizeDeps.esbuildOptions.preserveSymlinks + } setResolveOptions( 'extensions', optimizeDeps.esbuildOptions.resolveExtensions, @@ -1170,6 +1176,11 @@ function resolveDepOptimizationOptions( esbuildOptions: { preserveSymlinks, }, + rollupOptions: { + resolve: { + symlinks: !preserveSymlinks, + }, + }, force: forceOptimizeDeps ?? configDefaults.optimizeDeps.force, }, optimizeDeps ?? {}, From fbbfca4598fcb276411d3bf1e2f69054a64812fb Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Thu, 27 Mar 2025 17:05:10 +0900 Subject: [PATCH 033/102] fix: use exact regexp filter for virtual module (#89) --- packages/vite/src/node/plugins/modulePreloadPolyfill.ts | 5 +++-- packages/vite/src/node/plugins/wasm.ts | 5 +++-- packages/vite/src/node/utils.ts | 4 ++++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/vite/src/node/plugins/modulePreloadPolyfill.ts b/packages/vite/src/node/plugins/modulePreloadPolyfill.ts index 998a93dac16563..2c1d59cfea3838 100644 --- a/packages/vite/src/node/plugins/modulePreloadPolyfill.ts +++ b/packages/vite/src/node/plugins/modulePreloadPolyfill.ts @@ -1,5 +1,6 @@ import type { ResolvedConfig } from '..' import type { Plugin } from '../plugin' +import { exactRegex } from '../utils' import { isModernFlag } from './importAnalysisBuild' export const modulePreloadPolyfillId = 'vite/modulepreload-polyfill' @@ -11,13 +12,13 @@ export function modulePreloadPolyfillPlugin(config: ResolvedConfig): Plugin { return { name: 'vite:modulepreload-polyfill', resolveId: { - filter: { id: modulePreloadPolyfillId }, + filter: { id: exactRegex(modulePreloadPolyfillId) }, handler(_id) { return resolvedModulePreloadPolyfillId }, }, load: { - filter: { id: resolvedModulePreloadPolyfillId }, + filter: { id: exactRegex(resolvedModulePreloadPolyfillId) }, handler(_id) { // `isModernFlag` is only available during build since it is resolved by `vite:build-import-analysis` if ( diff --git a/packages/vite/src/node/plugins/wasm.ts b/packages/vite/src/node/plugins/wasm.ts index ad3fdb67cfef14..4c4958c3cf65fb 100644 --- a/packages/vite/src/node/plugins/wasm.ts +++ b/packages/vite/src/node/plugins/wasm.ts @@ -1,4 +1,5 @@ import type { Plugin } from '../plugin' +import { exactRegex } from '../utils' import { fileToUrl } from './asset' const wasmHelperId = '\0vite/wasm-helper.js' @@ -51,14 +52,14 @@ export const wasmHelperPlugin = (): Plugin => { name: 'vite:wasm-helper', resolveId: { - filter: { id: wasmHelperId }, + filter: { id: exactRegex(wasmHelperId) }, handler(id) { return id }, }, load: { - filter: { id: [wasmHelperId, /\.wasm\?init$/] }, + filter: { id: [exactRegex(wasmHelperId), /\.wasm\?init$/] }, async handler(id) { if (id === wasmHelperId) { return `export default ${wasmHelperCode}` diff --git a/packages/vite/src/node/utils.ts b/packages/vite/src/node/utils.ts index 295f6f35cd177d..cb94cc14a13255 100644 --- a/packages/vite/src/node/utils.ts +++ b/packages/vite/src/node/utils.ts @@ -1517,6 +1517,10 @@ export function escapeRegex(str: string): string { return str.replace(escapeRegexRE, '\\$&') } +export function exactRegex(str: string): RegExp { + return new RegExp(`^${escapeRegex(str)}$`) +} + type CommandType = 'install' | 'uninstall' | 'update' export function getPackageManagerCommand( type: CommandType = 'install', From 03e6286b52f4c1cf9c3ede2366bff685549b3860 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Thu, 27 Mar 2025 17:19:23 +0900 Subject: [PATCH 034/102] release: v6.3.0-beta.3 --- packages/vite/CHANGELOG.md | 8 ++++++++ packages/vite/package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index 6126604853ffaf..508768b3135981 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,11 @@ +## 6.3.0-beta.3 (2025-03-27) + +* fix: use exact regexp filter for virtual module (#89) ([fbbfca4](https://github.com/vitejs/rolldown-vite/commit/fbbfca4)), closes [#89](https://github.com/vitejs/rolldown-vite/issues/89) +* fix(optimizer): derive `resolve.symlinks` option properly (#91) ([0fc1af8](https://github.com/vitejs/rolldown-vite/commit/0fc1af8)), closes [#91](https://github.com/vitejs/rolldown-vite/issues/91) +* fix(transform): merge tsconfig jsx options with oxc jsx options correctly (#90) ([1851a57](https://github.com/vitejs/rolldown-vite/commit/1851a57)), closes [#90](https://github.com/vitejs/rolldown-vite/issues/90) + + + ## 6.3.0-beta.2 (2025-03-26) * chore: fix publish workflow ([fbaeca3](https://github.com/vitejs/rolldown-vite/commit/fbaeca3)) diff --git a/packages/vite/package.json b/packages/vite/package.json index 38ae57cfe4b499..b4a72593275512 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "rolldown-vite", - "version": "6.3.0-beta.2", + "version": "6.3.0-beta.3", "type": "module", "license": "MIT", "author": "Evan You", From 4c29faed49854efb11d109efcfce9ee5e3c5bffb Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Mon, 31 Mar 2025 05:00:12 +0200 Subject: [PATCH 035/102] chore: update readme (#87) --- README.md | 44 +++++++++++--------------------------------- 1 file changed, 11 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 205c4701a52e4f..7cf5773ffd8dd9 100644 --- a/README.md +++ b/README.md @@ -1,50 +1,28 @@

- + Vite logo + Rolldown logo


- npm package - node compatibility - build status - Start new PR in StackBlitz Codeflow + npm package + node compatibility + build status + Start new PR in StackBlitz Codeflow discord chat


-# Vite ⚡ +# rolldown-vite ⚡ -> Next Generation Frontend Tooling +> Vite with Rolldown as bundler. Temporary package. -- 💡 Instant Server Start -- ⚡️ Lightning Fast HMR -- 🛠️ Rich Features -- 📦 Optimized Build -- 🔩 Universal Plugin Interface -- 🔑 Fully Typed APIs +`rolldown-vite` is a fork of Vite that uses [Rolldown](https://github.com/rolldown-rs/rolldown) instead of Rollup & esbuild. Rolldown is a Rust-based JavaScript bundler designed for maximum performance. -Vite (French word for "quick", pronounced [`/vit/`](https://cdn.jsdelivr.net/gh/vitejs/vite@main/docs/public/vite.mp3), like "veet") is a new breed of frontend build tooling that significantly improves the frontend development experience. It consists of two major parts: +It can be used as a drop-in replacement to test out Rolldown with Vite. Eventually, this package is not needed anymore as all changes will be merged into the main Vite repository. -- A dev server that serves your source files over [native ES modules](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules), with [rich built-in features](https://vite.dev/guide/features.html) and astonishingly fast [Hot Module Replacement (HMR)](https://vite.dev/guide/features.html#hot-module-replacement). - -- A [build command](https://vite.dev/guide/build.html) that bundles your code with [Rollup](https://rollupjs.org), pre-configured to output highly optimized static assets for production. - -In addition, Vite is highly extensible via its [Plugin API](https://vite.dev/guide/api-plugin.html) and [JavaScript API](https://vite.dev/guide/api-javascript.html) with full typing support. - -[Read the Docs to Learn More](https://vite.dev). - -## Packages - -| Package | Version (click for changelogs) | -| ----------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------- | -| [vite](packages/vite) | [![vite version](https://img.shields.io/npm/v/vite.svg?label=%20)](packages/vite/CHANGELOG.md) | -| [@vitejs/plugin-legacy](packages/plugin-legacy) | [![plugin-legacy version](https://img.shields.io/npm/v/@vitejs/plugin-legacy.svg?label=%20)](packages/plugin-legacy/CHANGELOG.md) | -| [create-vite](packages/create-vite) | [![create-vite version](https://img.shields.io/npm/v/create-vite.svg?label=%20)](packages/create-vite/CHANGELOG.md) | - -## Contribution - -See [Contributing Guide](CONTRIBUTING.md). +[Read the Docs to Learn More](https://main.vite.dev/guide/rolldown.html). ## License From df12968d590e54f6404da737c24a1f3caab21a0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Tue, 1 Apr 2025 15:13:39 +0900 Subject: [PATCH 036/102] fix: accept worker iife format (#94) --- .../src/node/__tests__/plugins/oxc.spec.ts | 85 +++++++++++++++++++ packages/vite/src/node/plugins/oxc.ts | 6 +- 2 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 packages/vite/src/node/__tests__/plugins/oxc.spec.ts diff --git a/packages/vite/src/node/__tests__/plugins/oxc.spec.ts b/packages/vite/src/node/__tests__/plugins/oxc.spec.ts new file mode 100644 index 00000000000000..414d44fa8a98cb --- /dev/null +++ b/packages/vite/src/node/__tests__/plugins/oxc.spec.ts @@ -0,0 +1,85 @@ +import { expect, test } from 'vitest' +import type { InternalModuleFormat } from 'rolldown' +import { resolveConfig } from '../../config' +import { buildOxcPlugin } from '../../plugins/oxc' +import { PartialEnvironment } from '../../baseEnvironment' + +async function createBuildOxcPluginRenderChunk(target: string) { + const config = await resolveConfig( + { build: { target }, configFile: false }, + 'build', + ) + const instance = buildOxcPlugin() + const environment = new PartialEnvironment('client', config) + + return async (code: string, format: InternalModuleFormat) => { + // @ts-expect-error renderChunk should exist + const result = await instance.renderChunk.call( + { environment }, + code, + { + fileName: 'foo.ts', + }, + { format }, + ) + return result?.code || result + } +} + +test('should inject helper for worker iife from esm', async () => { + const renderChunk = await createBuildOxcPluginRenderChunk('es2015') + const result = await renderChunk( + `(function() { + +"use strict"; + +//#region src/index.js +(async () => { + await new Promise((resolve) => setTimeout(resolve, 1e3)); + console.log("foo"); +})(); + +//#endregion +})();`, + 'iife', + ) + expect(result).toMatchInlineSnapshot(` + "(function() { + "use strict";var babelHelpers=function(exports){"use strict";function t(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}function n(e){return function(){var n=this,r=arguments;return new Promise(function(i,a){var o=e.apply(n,r);function s(e){t(o,i,a,s,c,\`next\`,e)}function c(e){t(o,i,a,s,c,\`throw\`,e)}s(void 0)})}}return exports.asyncToGenerator=n,exports}({}); + + babelHelpers.asyncToGenerator(function* () { + yield new Promise((resolve) => setTimeout(resolve, 1e3)); + console.log("foo"); + })(); + })(); + " + `) +}) + +test('should inject helper for worker iife from cjs', async () => { + const renderChunk = await createBuildOxcPluginRenderChunk('es2015') + const result = await renderChunk( + `(function() { + + +//#region src/index.js +(async () => { + await new Promise((resolve) => setTimeout(resolve, 1e3)); + console.log("foo"); +})(); + +//#endregion +})();`, + 'iife', + ) + expect(result).toMatchInlineSnapshot(` + "(function() {var babelHelpers=function(exports){"use strict";function t(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}function n(e){return function(){var n=this,r=arguments;return new Promise(function(i,a){var o=e.apply(n,r);function s(e){t(o,i,a,s,c,\`next\`,e)}function c(e){t(o,i,a,s,c,\`throw\`,e)}s(void 0)})}}return exports.asyncToGenerator=n,exports}({}); + + babelHelpers.asyncToGenerator(function* () { + yield new Promise((resolve) => setTimeout(resolve, 1e3)); + console.log("foo"); + })(); + })(); + " + `) +}) diff --git a/packages/vite/src/node/plugins/oxc.ts b/packages/vite/src/node/plugins/oxc.ts index e690193837c77e..f347c2336c0e90 100644 --- a/packages/vite/src/node/plugins/oxc.ts +++ b/packages/vite/src/node/plugins/oxc.ts @@ -27,9 +27,9 @@ import { loadTsconfigJsonForFile } from './esbuild' // IIFE content looks like `var MyLib = (function() {`. const IIFE_BEGIN_RE = - /(?:const|var)\s+\S+\s*=\s*\(?function\([^()]*\)\s*\{\s*"use strict";/ + /(?:(?:const|var)\s+\S+\s*=\s*|^|\n)\(?function\([^()]*\)\s*\{(?:\s*"use strict";)?/ // UMD content looks like `(this, function(exports) {`. -const UMD_BEGIN_RE = /\(this,\s*function\([^()]*\)\s*\{\s*"use strict";/ +const UMD_BEGIN_RE = /\(this,\s*function\([^()]*\)\s*\{(?:\s*"use strict";)?/ const jsxExtensionsRE = /\.(?:j|t)sx\b/ const validExtensionRE = /\.\w+$/ @@ -490,7 +490,7 @@ export const buildOxcPlugin = (): Plugin => { this.error('Unexpected IIFE format') return } - const pos = m.index + m.length + const pos = m.index + m[0].length res.code = res.code.slice(0, pos) + helpersCode + '\n' + res.code.slice(pos) break From 5a6a7763ffa0a893d19edc103197802286ef255e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Tue, 1 Apr 2025 16:42:31 +0900 Subject: [PATCH 037/102] fix(worker): suppress export related warnings in worker build (#95) --- packages/vite/src/node/plugins/worker.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/vite/src/node/plugins/worker.ts b/packages/vite/src/node/plugins/worker.ts index ec07794d1cac4f..dea44e152b8cc3 100644 --- a/packages/vite/src/node/plugins/worker.ts +++ b/packages/vite/src/node/plugins/worker.ts @@ -101,6 +101,14 @@ async function bundleWorkerEntry( injectEnvironmentToHooks(workerEnvironment, chunkMetadataMap, p), ), onLog(level, log) { + if ( + log.code === 'MIXED_EXPORT' || + log.code === 'MISSING_NAME_OPTION_FOR_IIFE_EXPORT' + ) { + // these warning will be output because `preserveEntrySignatures` is not supported by rolldown + // suppress these warnings as users do not need to care about it + return + } onRollupLog(level, log, workerEnvironment) }, // TODO: remove this and enable rolldown's CSS support later From 8dd6f6983b18cf6b58f005a11d0a96e8d1d76dfb Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Wed, 2 Apr 2025 12:55:36 +0900 Subject: [PATCH 038/102] fix: plugin hook filter --- packages/vite/src/node/plugins/dynamicImportVars.ts | 5 +++-- packages/vite/src/node/plugins/importAnalysisBuild.ts | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/vite/src/node/plugins/dynamicImportVars.ts b/packages/vite/src/node/plugins/dynamicImportVars.ts index 3b196259e1acde..aba7b77124dd3e 100644 --- a/packages/vite/src/node/plugins/dynamicImportVars.ts +++ b/packages/vite/src/node/plugins/dynamicImportVars.ts @@ -10,6 +10,7 @@ import { CLIENT_ENTRY } from '../constants' import { createBackCompatIdResolver } from '../idResolver' import { createFilter, + exactRegex, normalizePath, rawRE, requestQueryMaybeEscapedSplitRE, @@ -182,7 +183,7 @@ export function dynamicImportVarsPlugin(config: ResolvedConfig): Plugin { resolveId: { filter: { - id: dynamicImportHelperId, + id: exactRegex(dynamicImportHelperId), }, handler(id) { return id @@ -191,7 +192,7 @@ export function dynamicImportVarsPlugin(config: ResolvedConfig): Plugin { load: { filter: { - id: dynamicImportHelperId, + id: exactRegex(dynamicImportHelperId), }, handler(_id) { return `export default ${dynamicImportHelper.toString()}` diff --git a/packages/vite/src/node/plugins/importAnalysisBuild.ts b/packages/vite/src/node/plugins/importAnalysisBuild.ts index 0460c06e3043de..43a0068753c7ff 100644 --- a/packages/vite/src/node/plugins/importAnalysisBuild.ts +++ b/packages/vite/src/node/plugins/importAnalysisBuild.ts @@ -11,6 +11,7 @@ import type { RawSourceMap } from '@ampproject/remapping' import convertSourceMap from 'convert-source-map' import { combineSourcemaps, + exactRegex, generateCodeFrame, isInNodeModules, numberToPos, @@ -215,7 +216,7 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { name: 'vite:build-import-analysis', resolveId: { filter: { - id: preloadHelperId, + id: exactRegex(preloadHelperId), }, handler(id) { return id @@ -224,7 +225,7 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { load: { filter: { - id: preloadHelperId, + id: exactRegex(preloadHelperId), }, handler(_id) { const preloadCode = getPreloadCode( From 96d906568b867ddd623db98b5239f244947568b0 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Wed, 2 Apr 2025 12:51:57 +0900 Subject: [PATCH 039/102] feat: update rolldown --- packages/vite/package.json | 2 +- pnpm-lock.yaml | 106 ++++++++++++++++++------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index b4a72593275512..e61c25b01c7ae0 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -89,7 +89,7 @@ "lightningcss": "^1.29.3", "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rolldown": "1.0.0-beta.7-commit.7452fa0", + "rolldown": "1.0.0-beta.7-commit.e117288", "tinyglobby": "^0.2.12" }, "optionalDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 232917572ab5a4..00bfa14411fb93 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -236,8 +236,8 @@ importers: specifier: ^8.5.3 version: 8.5.3 rolldown: - specifier: 1.0.0-beta.7-commit.7452fa0 - version: 1.0.0-beta.7-commit.7452fa0(@oxc-project/runtime@0.61.2)(typescript@5.7.3) + specifier: 1.0.0-beta.7-commit.e117288 + version: 1.0.0-beta.7-commit.e117288(@oxc-project/runtime@0.61.2)(typescript@5.7.3) tinyglobby: specifier: ^0.2.12 version: 0.2.12 @@ -2925,63 +2925,63 @@ packages: resolution: {integrity: sha512-TvCl79Y8v18ZhFGd5mjO1kYPovSBq3+4LVCi5Nfl1JI8fS8i8kXbgQFGwBJRXczim8GlW8c2LMBKTtExYXOy/A==} engines: {node: '>=18'} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.7452fa0': - resolution: {integrity: sha512-1ONRckAxd2vr6/e6KvC/m3bPFg1lzFzLd3rW5zaj7LvLhP20Fo6t+Mj7t8/N/ENR65jbMS4hXdTPRD3MvaNTjg==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.e117288': + resolution: {integrity: sha512-aq6Y9OQl05bYUnzM4a7ZGF3+Du7cdrw3Ala1eCnvNqxgi2ksXKN+LHvgeaWDlyfLgX0jVQFZre4+kzgLSHEMog==} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.7452fa0': - resolution: {integrity: sha512-tA3K/yj2MDIKmpMjldEKkS/1k8o8MXIm+bMdLahZmFVRE7ODfQRe3aUaaxTm7wvHG8GKgE4DcqMJTwDeCqAt/g==} + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.e117288': + resolution: {integrity: sha512-GRxENhaf92Blo7TZz8C8vBFSt4pCRWDP45ElGATItWqzyM+ILtzNjkE5Wj1OyWPe7y0oWxps6YMxVxEdb3/BJQ==} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.7452fa0': - resolution: {integrity: sha512-Ps9e395Gmv3nR+WmOLGnN23Qc5R7GZ619QMnrsZZnrNjqts4pf2DAGoPnTY/dCT/z+rfcN3ku35hWh3HsI9XGA==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.e117288': + resolution: {integrity: sha512-3uibg1KMHT7c149YupfXICxKoO6K7q3MaMpvOdxUjTY9mY3+v96eHTfnq+dd6qD16ppKSVij7FfpEC+sCVDRmg==} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.7452fa0': - resolution: {integrity: sha512-/RKVSZGQyFpDWI2ksNV7/n2M1bbFvIoS4QvcETU+sMnDfhZQB6vP00dHMFsJS9J+y05XbsMnEgHslrLywFu4Ww==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.e117288': + resolution: {integrity: sha512-oDFqE2fWx2sj0E9doRUmYxi5TKc9/vmD49NP0dUN578LQO8nJBwqOMvE8bM3a/T3or4g1mlJt2ebzGiKGzjHSw==} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.7452fa0': - resolution: {integrity: sha512-J6PeOqrX2QttacikU/CcIG2nlsnR9gDTcUQbwEbS1G/DaPrYEHXujiI4YY5Hmd+Sr1IYXI9i3z/RfzRI9XmcpQ==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.e117288': + resolution: {integrity: sha512-0Weogg1WiFNkmwznM4YS4AmDa55miGstb/I4zKquIsv1kSBLBkxboifgWTCPUnGFK7Wy1u/beRnxCY7UVL1oPw==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.7452fa0': - resolution: {integrity: sha512-lMUOKYcdDxpZMvkMbznjkqikPnvo3UIpdEfzEMp2/rOlYyC/2p3Trg3kGjhF4lbfRLbbuPEjLepGf67ot0I8oQ==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.e117288': + resolution: {integrity: sha512-LwEN10APipzjxAHSreVTEnUAHRz3sq4/UR3IVD/AguV0s6yAbVAsIrvIoxXHKoci+RUlyY5FXICYZQKli8iU5w==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.7452fa0': - resolution: {integrity: sha512-ydsgeyhu3/AvB+I1/+uQ1+PSEQRmftkvJ1ewoXB0oJTozAKN6Ywx8jnmV8jA1g/IuMDzepR6/ixF0hbyYinWWQ==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.e117288': + resolution: {integrity: sha512-tgE2J4BAQfI0rfoPzS4r1LEHSNxdNSM8l1Ab5InnzE4dXzVw92BVQ/FLFE6L+nWy81O7uwd7yz0Jo+qByOPCXg==} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.7452fa0': - resolution: {integrity: sha512-prSpmuIoS6M1KLRd2Fzpz9n6K6K8g8/F5bN15iEpjRZCkCOI24+bVX6fDKbI0frstIMzFVvbGSxmHxt0pyphEA==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.e117288': + resolution: {integrity: sha512-m78svPie3D5PIBxmexztDVHjrnHO5t6h3Lwtl6sqdrio1zhGYMY9FcPcaZZ40mXXWKHFoPmbueBZZLdttvOEIQ==} cpu: [x64] os: [linux] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.7452fa0': - resolution: {integrity: sha512-kRFr1jOfL4L627d1Bw/EPst3A2BwP+DV6CH/Myxl88DFzAeOAfQ04hFfCm8lBcRxzfrJNcFAMNrdIKgdUd7ddQ==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.e117288': + resolution: {integrity: sha512-XbOcOWmdioNZ3hHBb5j96Y9S9pGyTeFZWR5ovMZggA9L7mWft2pMrbx4p5zUy2dCps3l1jaFQCjKuBXpwoCZug==} engines: {node: '>=14.21.3'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.7452fa0': - resolution: {integrity: sha512-1l+vls3mjcKOxsrnwcwG1fX8/pL7URuZ+d+7WvKaXXIq3Id6HSdtCYuBwkUg3Bdm0mLDk7Qyv1QG3BwTcFahGQ==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.e117288': + resolution: {integrity: sha512-lnZ/wrat6UMWGbS9w5AUEH8WkPBA4EUSYp8cxlspdU16dISeD/KGpF2d0hS6Oa6ftbgZZrRLMEnQRiD8OupPsg==} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.7452fa0': - resolution: {integrity: sha512-YJxvaPtH4sl5reLZCvNuqFHCgdsIRGG77LET+xng9CEWGaA1Epx2qcbeAAX8czU82tYrorx5Taxioo3GqvF53w==} + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.e117288': + resolution: {integrity: sha512-F0N/6kAnCl9dOgqR09T60UjQSxKvRtlbImhiYxIdKBFxgYDDGsh8XzlSbMRUVQmMtNwKC8xi+i+SnamSqY6q8Q==} cpu: [ia32] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.7452fa0': - resolution: {integrity: sha512-OZok4v+44zYlSqo5pVyt5xPgruYcaPig9T0ieOh+O7f3BWqlkLI3ZFalznq2zFp4mJS7GtrqOAm6h7sgd+LTOw==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.e117288': + resolution: {integrity: sha512-T3qKMkSVemlVLLd5V7dCXnjt4Zda1UnUi45AQnmxIf3jH0/VP0J4aYAJiEEaRbhMoHc82j01+6MuZFZUVMeqng==} cpu: [x64] os: [win32] @@ -6660,8 +6660,8 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.7-commit.7452fa0: - resolution: {integrity: sha512-6/poOMpWJUy+MEd7qt6/f5lOOepR7vUXtMuK+J494yVA6jtkyXlCScvLVytpo13AKx+IhW/wt6qpCaZdFasd0g==} + rolldown@1.0.0-beta.7-commit.e117288: + resolution: {integrity: sha512-3pjhtA9BV/q9cNdcz75ehvie3lgFfJZfzIT8A7aZJPvFCaWTj5AUAlcExXRWO/CIMMZ/49Y1x3MTwRC/Q/LuAw==} hasBin: true peerDependencies: '@oxc-project/runtime': 0.61.2 @@ -8876,42 +8876,42 @@ snapshots: '@publint/pack@0.1.1': {} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.7452fa0': + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.e117288': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.7452fa0': + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.e117288': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.7452fa0': + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.e117288': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.7452fa0': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.e117288': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.7452fa0': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.e117288': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.7452fa0': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.e117288': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.7452fa0': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.e117288': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.7452fa0': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.e117288': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.7452fa0': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.e117288': dependencies: '@napi-rs/wasm-runtime': 0.2.7 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.7452fa0': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.e117288': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.7452fa0': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.e117288': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.7452fa0': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.e117288': optional: true '@rollup/plugin-alias@5.1.1(rollup@4.34.9)': @@ -12775,25 +12775,25 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.7-commit.7452fa0(@oxc-project/runtime@0.61.2)(typescript@5.7.3): + rolldown@1.0.0-beta.7-commit.e117288(@oxc-project/runtime@0.61.2)(typescript@5.7.3): dependencies: '@oxc-project/types': 0.61.2 '@valibot/to-json-schema': 1.0.0(valibot@1.0.0(typescript@5.7.3)) valibot: 1.0.0(typescript@5.7.3) optionalDependencies: '@oxc-project/runtime': 0.61.2 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.7452fa0 - '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.7452fa0 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.7452fa0 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.7452fa0 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.7452fa0 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.7452fa0 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.7452fa0 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.7452fa0 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.7452fa0 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.7452fa0 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.7452fa0 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.7452fa0 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.e117288 + '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.e117288 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.e117288 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.e117288 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.e117288 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.e117288 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.e117288 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.e117288 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.e117288 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.e117288 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.e117288 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.e117288 transitivePeerDependencies: - typescript From efe2728c802073d65933bed609ec29ee9bcc48ab Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Wed, 2 Apr 2025 13:00:49 +0900 Subject: [PATCH 040/102] fix: make `this.environment` available in outputOptions hook --- packages/vite/src/node/constants.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite/src/node/constants.ts b/packages/vite/src/node/constants.ts index b9d4278d96d672..20431e7390795a 100644 --- a/packages/vite/src/node/constants.ts +++ b/packages/vite/src/node/constants.ts @@ -19,7 +19,7 @@ export const ROLLUP_HOOKS = [ 'banner', 'footer', 'augmentChunkHash', - // 'outputOptions', + 'outputOptions', // 'renderDynamicImport', // 'resolveFileUrl', // 'resolveImportMeta', From 81179fea2b49fb9b026e2c1d4acb2c30ce42dec5 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Wed, 2 Apr 2025 13:13:37 +0900 Subject: [PATCH 041/102] release: v6.3.0-beta.4 --- packages/vite/CHANGELOG.md | 16 ++++++++++++++++ packages/vite/package.json | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index 508768b3135981..2a0e8ae2f7187a 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,19 @@ +## 6.3.0-beta.4 (2025-04-02) + +* fix: accept worker iife format (#94) ([df12968](https://github.com/vitejs/rolldown-vite/commit/df12968)), closes [#94](https://github.com/vitejs/rolldown-vite/issues/94) +* fix: align plugin hook filter behavior with pluginutils (#19736) ([0bbdd2c](https://github.com/vitejs/rolldown-vite/commit/0bbdd2c)), closes [#19736](https://github.com/vitejs/rolldown-vite/issues/19736) +* fix: fs check in transform middleware (#19761) ([5967313](https://github.com/vitejs/rolldown-vite/commit/5967313)), closes [#19761](https://github.com/vitejs/rolldown-vite/issues/19761) +* fix: make `this.environment` available in outputOptions hook ([efe2728](https://github.com/vitejs/rolldown-vite/commit/efe2728)) +* fix: plugin hook filter ([8dd6f69](https://github.com/vitejs/rolldown-vite/commit/8dd6f69)) +* fix(worker): suppress export related warnings in worker build (#95) ([5a6a776](https://github.com/vitejs/rolldown-vite/commit/5a6a776)), closes [#95](https://github.com/vitejs/rolldown-vite/issues/95) +* feat: update rolldown ([96d9065](https://github.com/vitejs/rolldown-vite/commit/96d9065)) +* feat(env): add false option for envDir to disable env loading (#19503) ([bca89e1](https://github.com/vitejs/rolldown-vite/commit/bca89e1)), closes [#19503](https://github.com/vitejs/rolldown-vite/issues/19503) +* feat(types): make CustomPluginOptionsVite backward compatible (#19760) ([821edf1](https://github.com/vitejs/rolldown-vite/commit/821edf1)), closes [#19760](https://github.com/vitejs/rolldown-vite/issues/19760) +* perf: only bundle node version `debug` (#19715) ([e435aae](https://github.com/vitejs/rolldown-vite/commit/e435aae)), closes [#19715](https://github.com/vitejs/rolldown-vite/issues/19715) +* chore: fix some typos in comment (#19728) ([35ee848](https://github.com/vitejs/rolldown-vite/commit/35ee848)), closes [#19728](https://github.com/vitejs/rolldown-vite/issues/19728) + + + ## 6.3.0-beta.3 (2025-03-27) * fix: use exact regexp filter for virtual module (#89) ([fbbfca4](https://github.com/vitejs/rolldown-vite/commit/fbbfca4)), closes [#89](https://github.com/vitejs/rolldown-vite/issues/89) diff --git a/packages/vite/package.json b/packages/vite/package.json index e61c25b01c7ae0..4229610ad0e026 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "rolldown-vite", - "version": "6.3.0-beta.3", + "version": "6.3.0-beta.4", "type": "module", "license": "MIT", "author": "Evan You", From 7c6faa6b2b8fca039ec4dcc994cdb911caf0adb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Thu, 3 Apr 2025 20:37:50 +0900 Subject: [PATCH 042/102] feat(oxc)!: jsxRefresh filter (#101) --- packages/vite/src/node/plugins/oxc.ts | 38 +++++++++++---------------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/packages/vite/src/node/plugins/oxc.ts b/packages/vite/src/node/plugins/oxc.ts index f347c2336c0e90..eee8e1eb504409 100644 --- a/packages/vite/src/node/plugins/oxc.ts +++ b/packages/vite/src/node/plugins/oxc.ts @@ -22,6 +22,7 @@ import type { Plugin } from '../plugin' import { cleanUrl } from '../../shared/utils' import type { Environment, Logger } from '..' import type { ViteDevServer } from '../server' +import { JS_TYPES_RE } from '../constants' import type { ESBuildOptions } from './esbuild' import { loadTsconfigJsonForFile } from './esbuild' @@ -42,8 +43,8 @@ export interface OxcOptions include?: string | RegExp | ReadonlyArray exclude?: string | RegExp | ReadonlyArray jsxInject?: string - jsxInclude?: string | RegExp | ReadonlyArray - jsxExclude?: string | RegExp | ReadonlyArray + jsxRefreshInclude?: string | RegExp | ReadonlyArray + jsxRefreshExclude?: string | RegExp | ReadonlyArray } export async function transformWithOxc( @@ -303,22 +304,16 @@ export function oxcPlugin(config: ResolvedConfig): Plugin { jsxInject, include, exclude, - jsxInclude, - jsxExclude, + jsxRefreshInclude, + jsxRefreshExclude, ...oxcTransformOptions } = options - const defaultInclude = Array.isArray(include) - ? include - : [include || /\.(m?ts|[jt]sx)$/] - const filter = createFilter( - defaultInclude.concat(jsxInclude || []), - exclude || /\.js$/, - ) - const jsxFilter = createFilter( - jsxInclude || /\.jsx$/, - jsxExclude || /\.(m?[jt]s|tsx)$/, - ) + const filter = createFilter(include || /\.(m?ts|[jt]sx)$/, exclude || /\.js$/) + const jsxRefreshFilter = + jsxRefreshInclude || jsxRefreshExclude + ? createFilter(jsxRefreshInclude, jsxRefreshExclude) + : undefined const getModifiedOxcTransformOptions = ( oxcTransformOptions: OxcTransformOptions, @@ -332,17 +327,16 @@ export function oxcPlugin(config: ResolvedConfig): Plugin { } const jsxOptions = result.jsx - // disable refresh at ssr if ( - environment.config.consumer === 'server' && typeof jsxOptions === 'object' && - jsxOptions.refresh + jsxOptions.refresh && + (environment.config.consumer === 'server' || + (jsxRefreshFilter && !jsxRefreshFilter(id))) ) { result.jsx = { ...jsxOptions, refresh: false } } - - if ((jsxFilter(id) || jsxFilter(cleanUrl(id))) && !result.lang) { - result.lang = 'jsx' + if (jsxRefreshFilter?.(id) && !JS_TYPES_RE.test(cleanUrl(id))) { + result.lang = 'js' } return result @@ -368,7 +362,7 @@ export function oxcPlugin(config: ResolvedConfig): Plugin { }, }, async transform(code, id) { - if (filter(id) || filter(cleanUrl(id))) { + if (filter(id) || filter(cleanUrl(id)) || jsxRefreshFilter?.(id)) { const modifiedOxcTransformOptions = getModifiedOxcTransformOptions( oxcTransformOptions, id, From b17bade873dc21240ab60b1c941be4b2253f7581 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Thu, 3 Apr 2025 20:55:53 +0900 Subject: [PATCH 043/102] chore: cleanup changelog --- packages/vite/CHANGELOG.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index 5fb6bca0e0bfb4..2a0e8ae2f7187a 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,13 +1,3 @@ -* fix: align plugin hook filter behavior with pluginutils (#19736) ([0bbdd2c](https://github.com/vitejs/vite/commit/0bbdd2c1338624fa0e76c81648989f8f9a5b36d7)), closes [#19736](https://github.com/vitejs/vite/issues/19736) -* fix: fs check in transform middleware (#19761) ([5967313](https://github.com/vitejs/vite/commit/59673137c45ac2bcfad1170d954347c1a17ab949)), closes [#19761](https://github.com/vitejs/vite/issues/19761) -* fix(hmr): throw non-standard error info causes logical error (#19776) ([6b648c7](https://github.com/vitejs/vite/commit/6b648c73ae33a57f648af87204a325335afffca8)), closes [#19776](https://github.com/vitejs/vite/issues/19776) -* perf: only bundle node version `debug` (#19715) ([e435aae](https://github.com/vitejs/vite/commit/e435aae22ffda441a24332cd79226bfca55326aa)), closes [#19715](https://github.com/vitejs/vite/issues/19715) -* feat(env): add false option for envDir to disable env loading (#19503) ([bca89e1](https://github.com/vitejs/vite/commit/bca89e153e58edd2b506807958557a21edacfaf8)), closes [#19503](https://github.com/vitejs/vite/issues/19503) -* feat(types): make CustomPluginOptionsVite backward compatible (#19760) ([821edf1](https://github.com/vitejs/vite/commit/821edf196f281b90af0742647a3feaf3226be439)), closes [#19760](https://github.com/vitejs/vite/issues/19760) -* chore: fix some typos in comment (#19728) ([35ee848](https://github.com/vitejs/vite/commit/35ee84808af3a5443019e36cba351af859113695)), closes [#19728](https://github.com/vitejs/vite/issues/19728) - - - ## 6.3.0-beta.4 (2025-04-02) * fix: accept worker iife format (#94) ([df12968](https://github.com/vitejs/rolldown-vite/commit/df12968)), closes [#94](https://github.com/vitejs/rolldown-vite/issues/94) From 5f9204a2df876eb4efb97b270c713a955cbc55b8 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Thu, 3 Apr 2025 20:56:38 +0900 Subject: [PATCH 044/102] release: v6.3.0-beta.5 --- packages/vite/CHANGELOG.md | 12 ++++++++++++ packages/vite/package.json | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index 2a0e8ae2f7187a..abf27e8013f614 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,15 @@ +## 6.3.0-beta.5 (2025-04-03) + +* chore: cleanup changelog ([b17bade](https://github.com/vitejs/rolldown-vite/commit/b17bade)) +* chore: remove unused eslint directive (#19781) ([cb4f5b4](https://github.com/vitejs/rolldown-vite/commit/cb4f5b4)), closes [#19781](https://github.com/vitejs/rolldown-vite/issues/19781) +* feat(oxc)!: jsxRefresh filter (#101) ([7c6faa6](https://github.com/vitejs/rolldown-vite/commit/7c6faa6)), closes [#101](https://github.com/vitejs/rolldown-vite/issues/101) +* fix: fs check with svg and relative paths (#19782) ([62d7e81](https://github.com/vitejs/rolldown-vite/commit/62d7e81)), closes [#19782](https://github.com/vitejs/rolldown-vite/issues/19782) +* fix: keep entry asset files imported by other files (#19779) ([2fa1495](https://github.com/vitejs/rolldown-vite/commit/2fa1495)), closes [#19779](https://github.com/vitejs/rolldown-vite/issues/19779) +* fix(hmr): throw non-standard error info causes logical error (#19776) ([6b648c7](https://github.com/vitejs/rolldown-vite/commit/6b648c7)), closes [#19776](https://github.com/vitejs/rolldown-vite/issues/19776) +* release: v6.3.0-beta.1 ([a299106](https://github.com/vitejs/rolldown-vite/commit/a299106)) + + + ## 6.3.0-beta.4 (2025-04-02) * fix: accept worker iife format (#94) ([df12968](https://github.com/vitejs/rolldown-vite/commit/df12968)), closes [#94](https://github.com/vitejs/rolldown-vite/issues/94) diff --git a/packages/vite/package.json b/packages/vite/package.json index 4229610ad0e026..9dd45e9706aa58 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "rolldown-vite", - "version": "6.3.0-beta.4", + "version": "6.3.0-beta.5", "type": "module", "license": "MIT", "author": "Evan You", From c7e3e040627e0d9db19cb665950452b5295053c6 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Tue, 8 Apr 2025 12:02:30 +0900 Subject: [PATCH 045/102] feat: update rolldown --- packages/vite/package.json | 6 +- pnpm-lock.yaml | 132 ++++++++++++++++++------------------- 2 files changed, 69 insertions(+), 69 deletions(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index 9dd45e9706aa58..0ce03da5bcf956 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -85,11 +85,11 @@ }, "//": "READ CONTRIBUTING.md to understand what to put under deps vs. devDeps!", "dependencies": { - "@oxc-project/runtime": "0.61.2", + "@oxc-project/runtime": "0.62.0", "lightningcss": "^1.29.3", "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rolldown": "1.0.0-beta.7-commit.e117288", + "rolldown": "1.0.0-beta.7-commit.25f3c61", "tinyglobby": "^0.2.12" }, "optionalDependencies": { @@ -99,7 +99,7 @@ "@ampproject/remapping": "^2.3.0", "@babel/parser": "^7.26.10", "@jridgewell/trace-mapping": "^0.3.25", - "@oxc-project/types": "0.61.2", + "@oxc-project/types": "0.62.0", "@polka/compression": "^1.0.0-next.25", "@rollup/plugin-alias": "^5.1.1", "@rollup/plugin-commonjs": "^28.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 00bfa14411fb93..2317d55157323f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -224,8 +224,8 @@ importers: packages/vite: dependencies: '@oxc-project/runtime': - specifier: 0.61.2 - version: 0.61.2 + specifier: 0.62.0 + version: 0.62.0 lightningcss: specifier: ^1.29.3 version: 1.29.3 @@ -236,8 +236,8 @@ importers: specifier: ^8.5.3 version: 8.5.3 rolldown: - specifier: 1.0.0-beta.7-commit.e117288 - version: 1.0.0-beta.7-commit.e117288(@oxc-project/runtime@0.61.2)(typescript@5.7.3) + specifier: 1.0.0-beta.7-commit.25f3c61 + version: 1.0.0-beta.7-commit.25f3c61(@oxc-project/runtime@0.62.0)(typescript@5.7.3) tinyglobby: specifier: ^0.2.12 version: 0.2.12 @@ -252,8 +252,8 @@ importers: specifier: ^0.3.25 version: 0.3.25 '@oxc-project/types': - specifier: 0.61.2 - version: 0.61.2 + specifier: 0.62.0 + version: 0.62.0 '@polka/compression': specifier: ^1.0.0-next.25 version: 1.0.0-next.25 @@ -2821,12 +2821,12 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@oxc-project/runtime@0.61.2': - resolution: {integrity: sha512-UNv56Aa4pTtsnqapa2LC+gRxXbUZxA6j1WlSYV8+zan5sD+CvwOMSzUsMNdUUTebob6PafJfT+/TN83yWXWmSA==} + '@oxc-project/runtime@0.62.0': + resolution: {integrity: sha512-l6nPv12hDRhJnE3IPxzLjWpACpIQYUQFO8tSax6ky61+FJsy+uOAehZWugirfJWN0Pvc2gtXcHpwaOOtP5y4tA==} engines: {node: '>=6.9.0'} - '@oxc-project/types@0.61.2': - resolution: {integrity: sha512-rfuwJwvwn9MRthHNXlSo9Eka/u7gC0MhnWAoX3BhE1+rwPOl22nq0K0Y997Hof0tHCOuD7H3/Z8HTfCVhB4c5Q==} + '@oxc-project/types@0.62.0': + resolution: {integrity: sha512-rC3YQjrntGvg8vkHHKaiFqZFBCDU/F3BPfokssD02q5Sn4dSZGYzJVdojqYIEFECpEMEqKBxqIRmVex1+WXI5w==} '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} @@ -2925,63 +2925,63 @@ packages: resolution: {integrity: sha512-TvCl79Y8v18ZhFGd5mjO1kYPovSBq3+4LVCi5Nfl1JI8fS8i8kXbgQFGwBJRXczim8GlW8c2LMBKTtExYXOy/A==} engines: {node: '>=18'} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.e117288': - resolution: {integrity: sha512-aq6Y9OQl05bYUnzM4a7ZGF3+Du7cdrw3Ala1eCnvNqxgi2ksXKN+LHvgeaWDlyfLgX0jVQFZre4+kzgLSHEMog==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.25f3c61': + resolution: {integrity: sha512-NgwEo+jc0mb52Pzag7Uj/oE+RZtSN6nVbjdHDJh9TTqY7EzyYcj2HNJ8jZmiqTcY7+BJYDRjTpCnx7yH6ejwLQ==} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.e117288': - resolution: {integrity: sha512-GRxENhaf92Blo7TZz8C8vBFSt4pCRWDP45ElGATItWqzyM+ILtzNjkE5Wj1OyWPe7y0oWxps6YMxVxEdb3/BJQ==} + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.25f3c61': + resolution: {integrity: sha512-x+k80M92Vknsq6y2qRmkmhlYMZoeIvUOGFptboLiMzqAVTLUYs96l1t3cu9/nYzLaq+1b2yuhnZceWL3oA7/bQ==} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.e117288': - resolution: {integrity: sha512-3uibg1KMHT7c149YupfXICxKoO6K7q3MaMpvOdxUjTY9mY3+v96eHTfnq+dd6qD16ppKSVij7FfpEC+sCVDRmg==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.25f3c61': + resolution: {integrity: sha512-Gc8PN9qsbUb0SDLg8v2Eyiy0a+hnMtsb03uoSW/5bF+FEH8Btmr4bGG+5gE6xvKJ8FGPgsOpmJqHNBIbQpa9RQ==} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.e117288': - resolution: {integrity: sha512-oDFqE2fWx2sj0E9doRUmYxi5TKc9/vmD49NP0dUN578LQO8nJBwqOMvE8bM3a/T3or4g1mlJt2ebzGiKGzjHSw==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.25f3c61': + resolution: {integrity: sha512-SaWy1LvP9xu/NuOqDuYy+a7DYRVedIZmTGGNGSKLxP+xmzccrVB94V7V6paXvOvG9nRMmp6QONYHO/CvgnH5Gw==} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.e117288': - resolution: {integrity: sha512-0Weogg1WiFNkmwznM4YS4AmDa55miGstb/I4zKquIsv1kSBLBkxboifgWTCPUnGFK7Wy1u/beRnxCY7UVL1oPw==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.25f3c61': + resolution: {integrity: sha512-AvF8N5bikI5ewpkh6k1Dh72+umI8oezZI5vZ8mx0d1p2E+cYxdq5R878U5wuISgbfAU4cjih2FG+35z6Pnuy/A==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.e117288': - resolution: {integrity: sha512-LwEN10APipzjxAHSreVTEnUAHRz3sq4/UR3IVD/AguV0s6yAbVAsIrvIoxXHKoci+RUlyY5FXICYZQKli8iU5w==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.25f3c61': + resolution: {integrity: sha512-qf1dW9HtYRUHH0sqERBGgoWLQ2wX+MpujL8Jho3Xt4iqRiB+oLDAn9sssJxRtOVf29G4FNMY2Iruoh/WQH7H6A==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.e117288': - resolution: {integrity: sha512-tgE2J4BAQfI0rfoPzS4r1LEHSNxdNSM8l1Ab5InnzE4dXzVw92BVQ/FLFE6L+nWy81O7uwd7yz0Jo+qByOPCXg==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.25f3c61': + resolution: {integrity: sha512-6xgP3isXvr1INdSdP3fgsEygRc+lIgG8roXRxhgtJ62tj3e5lBfA7qiHD7nQkVJODJ2YYQBCiykK9H/7NBMVbQ==} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.e117288': - resolution: {integrity: sha512-m78svPie3D5PIBxmexztDVHjrnHO5t6h3Lwtl6sqdrio1zhGYMY9FcPcaZZ40mXXWKHFoPmbueBZZLdttvOEIQ==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.25f3c61': + resolution: {integrity: sha512-uluF0Jez4o2h0woYXmZYRHSdJIXR++3BmCzjmrwhJV0hAiu7IDAlBxQqPn5MS4uxUAVV9LboXcudaAxP4SiOGg==} cpu: [x64] os: [linux] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.e117288': - resolution: {integrity: sha512-XbOcOWmdioNZ3hHBb5j96Y9S9pGyTeFZWR5ovMZggA9L7mWft2pMrbx4p5zUy2dCps3l1jaFQCjKuBXpwoCZug==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.25f3c61': + resolution: {integrity: sha512-I6zfXSsv5McMLMJk0/Vypiu5r+P9YkKE6aTku7/c5QhXHWLnelImCz3E/XTTexyUFBiCujTMLxk5D/Z1YQDXLw==} engines: {node: '>=14.21.3'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.e117288': - resolution: {integrity: sha512-lnZ/wrat6UMWGbS9w5AUEH8WkPBA4EUSYp8cxlspdU16dISeD/KGpF2d0hS6Oa6ftbgZZrRLMEnQRiD8OupPsg==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.25f3c61': + resolution: {integrity: sha512-1E7H3kLyWWCzp1wepZfOVeQFD6+U5CJUaQTwUyr8yvJni1ew4G3rMeS2S5ohKQtc26sT1i3sMYffmQgBKnfqeQ==} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.e117288': - resolution: {integrity: sha512-F0N/6kAnCl9dOgqR09T60UjQSxKvRtlbImhiYxIdKBFxgYDDGsh8XzlSbMRUVQmMtNwKC8xi+i+SnamSqY6q8Q==} + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.25f3c61': + resolution: {integrity: sha512-j/fs4/JcCSy8kYGNH7NtmiIvN3vHHiloPMGp0e4xwVQllX2/jkeWSLAb+Pqv/b+rz4XwmaL+pbbq8yuomU3/og==} cpu: [ia32] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.e117288': - resolution: {integrity: sha512-T3qKMkSVemlVLLd5V7dCXnjt4Zda1UnUi45AQnmxIf3jH0/VP0J4aYAJiEEaRbhMoHc82j01+6MuZFZUVMeqng==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.25f3c61': + resolution: {integrity: sha512-dHDpZfOdCdtZekAqWJ0yaOHKHrJMD5e9B3iq/JnMfS43wz2t4ci5lT5aeJggGsHDcxFRtsUdGzp235NMJ0NPKA==} cpu: [x64] os: [win32] @@ -6660,11 +6660,11 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.7-commit.e117288: - resolution: {integrity: sha512-3pjhtA9BV/q9cNdcz75ehvie3lgFfJZfzIT8A7aZJPvFCaWTj5AUAlcExXRWO/CIMMZ/49Y1x3MTwRC/Q/LuAw==} + rolldown@1.0.0-beta.7-commit.25f3c61: + resolution: {integrity: sha512-FbNkKcPa6P3UmA4yLY5cMp9IMwKqy8qwiAeHbGmioqreUSVkJyFpYiXqLF0EnFX4kKD8FCrK54LYW/pnVmTULw==} hasBin: true peerDependencies: - '@oxc-project/runtime': 0.61.2 + '@oxc-project/runtime': 0.62.0 peerDependenciesMeta: '@oxc-project/runtime': optional: true @@ -8802,9 +8802,9 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.0 - '@oxc-project/runtime@0.61.2': {} + '@oxc-project/runtime@0.62.0': {} - '@oxc-project/types@0.61.2': {} + '@oxc-project/types@0.62.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -8876,42 +8876,42 @@ snapshots: '@publint/pack@0.1.1': {} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.e117288': + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.25f3c61': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.e117288': + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.25f3c61': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.e117288': + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.25f3c61': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.e117288': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.25f3c61': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.e117288': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.25f3c61': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.e117288': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.25f3c61': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.e117288': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.25f3c61': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.e117288': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.25f3c61': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.e117288': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.25f3c61': dependencies: '@napi-rs/wasm-runtime': 0.2.7 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.e117288': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.25f3c61': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.e117288': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.25f3c61': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.e117288': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.25f3c61': optional: true '@rollup/plugin-alias@5.1.1(rollup@4.34.9)': @@ -12775,25 +12775,25 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.7-commit.e117288(@oxc-project/runtime@0.61.2)(typescript@5.7.3): + rolldown@1.0.0-beta.7-commit.25f3c61(@oxc-project/runtime@0.62.0)(typescript@5.7.3): dependencies: - '@oxc-project/types': 0.61.2 + '@oxc-project/types': 0.62.0 '@valibot/to-json-schema': 1.0.0(valibot@1.0.0(typescript@5.7.3)) valibot: 1.0.0(typescript@5.7.3) optionalDependencies: - '@oxc-project/runtime': 0.61.2 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.e117288 - '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.e117288 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.e117288 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.e117288 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.e117288 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.e117288 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.e117288 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.e117288 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.e117288 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.e117288 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.e117288 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.e117288 + '@oxc-project/runtime': 0.62.0 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.25f3c61 + '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.25f3c61 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.25f3c61 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.25f3c61 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.25f3c61 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.25f3c61 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.25f3c61 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.25f3c61 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.25f3c61 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.25f3c61 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.25f3c61 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.25f3c61 transitivePeerDependencies: - typescript From 744c814f67666c2cc63cfb1428f50b4e32b7ff10 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Tue, 8 Apr 2025 12:02:47 +0900 Subject: [PATCH 046/102] test: skip debug id check if sourcemap does not exist --- playground/js-sourcemap/__tests__/js-sourcemap.spec.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/playground/js-sourcemap/__tests__/js-sourcemap.spec.ts b/playground/js-sourcemap/__tests__/js-sourcemap.spec.ts index 10673ccbb6d402..6553dd48ab0ada 100644 --- a/playground/js-sourcemap/__tests__/js-sourcemap.spec.ts +++ b/playground/js-sourcemap/__tests__/js-sourcemap.spec.ts @@ -1,6 +1,7 @@ import { URL, fileURLToPath } from 'node:url' import { promisify } from 'node:util' import { execFile } from 'node:child_process' +import { existsSync } from 'node:fs' import { describe, expect, test } from 'vitest' import { mapFileCommentRegex } from 'convert-source-map' import { commentSourceMap } from '../foo-with-sourcemap-plugin' @@ -223,6 +224,9 @@ describe.runIf(isBuild)('build tests', () => { for (const jsAsset of jsAssets) { const jsContent = readFile(jsAsset) + const hasSourcemap = existsSync(`${jsAsset}.map`) + if (!hasSourcemap) continue + const sourceDebugId = getDebugIdFromString(jsContent) expect( sourceDebugId, From 8646e4e68b432c8197c3f138dbe65356ac73fe16 Mon Sep 17 00:00:00 2001 From: underfin <2218301630@qq.com> Date: Wed, 9 Apr 2025 10:28:28 +0800 Subject: [PATCH 047/102] chore: bump rolldown (#105) --- packages/vite/package.json | 6 +- pnpm-lock.yaml | 132 ++++++++++++++++++------------------- 2 files changed, 69 insertions(+), 69 deletions(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index 0ce03da5bcf956..746a02e13cebb2 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -85,11 +85,11 @@ }, "//": "READ CONTRIBUTING.md to understand what to put under deps vs. devDeps!", "dependencies": { - "@oxc-project/runtime": "0.62.0", + "@oxc-project/runtime": "0.63.0", "lightningcss": "^1.29.3", "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rolldown": "1.0.0-beta.7-commit.25f3c61", + "rolldown": "1.0.0-beta.7-commit.8d551a2", "tinyglobby": "^0.2.12" }, "optionalDependencies": { @@ -99,7 +99,7 @@ "@ampproject/remapping": "^2.3.0", "@babel/parser": "^7.26.10", "@jridgewell/trace-mapping": "^0.3.25", - "@oxc-project/types": "0.62.0", + "@oxc-project/types": "0.63.0", "@polka/compression": "^1.0.0-next.25", "@rollup/plugin-alias": "^5.1.1", "@rollup/plugin-commonjs": "^28.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2317d55157323f..5765ebf34d82ee 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -224,8 +224,8 @@ importers: packages/vite: dependencies: '@oxc-project/runtime': - specifier: 0.62.0 - version: 0.62.0 + specifier: 0.63.0 + version: 0.63.0 lightningcss: specifier: ^1.29.3 version: 1.29.3 @@ -236,8 +236,8 @@ importers: specifier: ^8.5.3 version: 8.5.3 rolldown: - specifier: 1.0.0-beta.7-commit.25f3c61 - version: 1.0.0-beta.7-commit.25f3c61(@oxc-project/runtime@0.62.0)(typescript@5.7.3) + specifier: 1.0.0-beta.7-commit.8d551a2 + version: 1.0.0-beta.7-commit.8d551a2(@oxc-project/runtime@0.63.0)(typescript@5.7.3) tinyglobby: specifier: ^0.2.12 version: 0.2.12 @@ -252,8 +252,8 @@ importers: specifier: ^0.3.25 version: 0.3.25 '@oxc-project/types': - specifier: 0.62.0 - version: 0.62.0 + specifier: 0.63.0 + version: 0.63.0 '@polka/compression': specifier: ^1.0.0-next.25 version: 1.0.0-next.25 @@ -2821,12 +2821,12 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@oxc-project/runtime@0.62.0': - resolution: {integrity: sha512-l6nPv12hDRhJnE3IPxzLjWpACpIQYUQFO8tSax6ky61+FJsy+uOAehZWugirfJWN0Pvc2gtXcHpwaOOtP5y4tA==} + '@oxc-project/runtime@0.63.0': + resolution: {integrity: sha512-u7mno3YgPu6G8gfXQyHcsKWtCacl4w6lKxy6LMXsNsqCcMf3k2zfVW9oV7z83oOLVIJ5fmBbvjqubT4X5ScGGg==} engines: {node: '>=6.9.0'} - '@oxc-project/types@0.62.0': - resolution: {integrity: sha512-rC3YQjrntGvg8vkHHKaiFqZFBCDU/F3BPfokssD02q5Sn4dSZGYzJVdojqYIEFECpEMEqKBxqIRmVex1+WXI5w==} + '@oxc-project/types@0.63.0': + resolution: {integrity: sha512-2tIGBdm0mOMMo3AUVdXyZUORDbWTnt4XVOKeNdcPtxtb39SgyF/ek2QV7DJ9BAV5TWYYis6BuY5SqrAp+PHRgQ==} '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} @@ -2925,63 +2925,63 @@ packages: resolution: {integrity: sha512-TvCl79Y8v18ZhFGd5mjO1kYPovSBq3+4LVCi5Nfl1JI8fS8i8kXbgQFGwBJRXczim8GlW8c2LMBKTtExYXOy/A==} engines: {node: '>=18'} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.25f3c61': - resolution: {integrity: sha512-NgwEo+jc0mb52Pzag7Uj/oE+RZtSN6nVbjdHDJh9TTqY7EzyYcj2HNJ8jZmiqTcY7+BJYDRjTpCnx7yH6ejwLQ==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.8d551a2': + resolution: {integrity: sha512-BsSrC2Z8mKAAHAZdSwVUf4zXYugp2QlJ9AtXSles/oPbMFuT/O4kJmeo4jfr0TzgX1XjsLjT53KMykZvoEjzug==} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.25f3c61': - resolution: {integrity: sha512-x+k80M92Vknsq6y2qRmkmhlYMZoeIvUOGFptboLiMzqAVTLUYs96l1t3cu9/nYzLaq+1b2yuhnZceWL3oA7/bQ==} + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.8d551a2': + resolution: {integrity: sha512-M2PCNCeXsTUFYXjPqPuAqnYOFdAos/78W7ZsTGCdxNnPsamUSeAT8xi0YNGEYdU3yElgH/wSjG25wrsntNuv3A==} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.25f3c61': - resolution: {integrity: sha512-Gc8PN9qsbUb0SDLg8v2Eyiy0a+hnMtsb03uoSW/5bF+FEH8Btmr4bGG+5gE6xvKJ8FGPgsOpmJqHNBIbQpa9RQ==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.8d551a2': + resolution: {integrity: sha512-jfMEmOObOJ7vkPcn2uB8vo+ATTLTT5gEeXSv2vImUUjPwbPwcrm7d2gdDC08iMU/i36NwzD3JgkLmPVTbw6ehg==} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.25f3c61': - resolution: {integrity: sha512-SaWy1LvP9xu/NuOqDuYy+a7DYRVedIZmTGGNGSKLxP+xmzccrVB94V7V6paXvOvG9nRMmp6QONYHO/CvgnH5Gw==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.8d551a2': + resolution: {integrity: sha512-RhRW+jtOT4TiWIgOMOk+2LqWrU5D7v721LP1+XTlx/utX8zM+vbrNJcQnzmC1/wXEMyq8MZc6PUjCIjRU8HKiA==} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.25f3c61': - resolution: {integrity: sha512-AvF8N5bikI5ewpkh6k1Dh72+umI8oezZI5vZ8mx0d1p2E+cYxdq5R878U5wuISgbfAU4cjih2FG+35z6Pnuy/A==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.8d551a2': + resolution: {integrity: sha512-hx+CHAdLj1gOP7a3a3/DgJshD/JLqN+P4xQXUDvV3ZsNJud/LNWXOOCdDXXIKC38Ko+htn4EbJAe5V5W3RIRNw==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.25f3c61': - resolution: {integrity: sha512-qf1dW9HtYRUHH0sqERBGgoWLQ2wX+MpujL8Jho3Xt4iqRiB+oLDAn9sssJxRtOVf29G4FNMY2Iruoh/WQH7H6A==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.8d551a2': + resolution: {integrity: sha512-AjsNGsH2n5p/viFkUMbHXJ66FgU7bUmBKi55j0FBGXtD2i3+6I+yRS6wwCQWNy4gf+Ga6NZ3ywHp57svwEjp/g==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.25f3c61': - resolution: {integrity: sha512-6xgP3isXvr1INdSdP3fgsEygRc+lIgG8roXRxhgtJ62tj3e5lBfA7qiHD7nQkVJODJ2YYQBCiykK9H/7NBMVbQ==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.8d551a2': + resolution: {integrity: sha512-u0TOdqY/l+lr+09QOvAIG8TBQ3AbLCXny6RK2ooy4vuNNowLGMQK1RvudmM+moEZkYic2i7+5KikEf0AqRRoYQ==} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.25f3c61': - resolution: {integrity: sha512-uluF0Jez4o2h0woYXmZYRHSdJIXR++3BmCzjmrwhJV0hAiu7IDAlBxQqPn5MS4uxUAVV9LboXcudaAxP4SiOGg==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.8d551a2': + resolution: {integrity: sha512-OPQHsyN6QRZmnc7emIoEczXMM4smtVyYOgcQ+JLqT2Anvmj5+J7t7eDItsfG/jegA/GXOLYobZg1VnBmsg7CDQ==} cpu: [x64] os: [linux] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.25f3c61': - resolution: {integrity: sha512-I6zfXSsv5McMLMJk0/Vypiu5r+P9YkKE6aTku7/c5QhXHWLnelImCz3E/XTTexyUFBiCujTMLxk5D/Z1YQDXLw==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.8d551a2': + resolution: {integrity: sha512-FwRjDEBTxKQDrllqE6g30mIqgW8f5wcupzXASKgXZqsziRZUeNThbu1AzObqeMPt1Lpj3q52npn19AkK9D3h8A==} engines: {node: '>=14.21.3'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.25f3c61': - resolution: {integrity: sha512-1E7H3kLyWWCzp1wepZfOVeQFD6+U5CJUaQTwUyr8yvJni1ew4G3rMeS2S5ohKQtc26sT1i3sMYffmQgBKnfqeQ==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.8d551a2': + resolution: {integrity: sha512-pVojg4Qb2AUKVNRK+18+kWeHhjXkG1OKGr6Zhl73ROyecs5IvBkSYFszzDeXwaM2uSgQdAK6mIYpSKzb1h7VGg==} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.25f3c61': - resolution: {integrity: sha512-j/fs4/JcCSy8kYGNH7NtmiIvN3vHHiloPMGp0e4xwVQllX2/jkeWSLAb+Pqv/b+rz4XwmaL+pbbq8yuomU3/og==} + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.8d551a2': + resolution: {integrity: sha512-xdMZNsO5jC5TB1jnwI7jpc+XWaK4vARc8Z1dAhS7jrVIpNc2I21uh0Rnxhq3bn+Pz0AR/njHvcTueYc0vgTMvg==} cpu: [ia32] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.25f3c61': - resolution: {integrity: sha512-dHDpZfOdCdtZekAqWJ0yaOHKHrJMD5e9B3iq/JnMfS43wz2t4ci5lT5aeJggGsHDcxFRtsUdGzp235NMJ0NPKA==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.8d551a2': + resolution: {integrity: sha512-cw57+QCAzXP9AUlRROeX8lUqibsIxOG7djedfULxHHwiPLan59QF0ao3C8D8zQAtDD3CKK5YcikHORKUOh+duA==} cpu: [x64] os: [win32] @@ -6660,11 +6660,11 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.7-commit.25f3c61: - resolution: {integrity: sha512-FbNkKcPa6P3UmA4yLY5cMp9IMwKqy8qwiAeHbGmioqreUSVkJyFpYiXqLF0EnFX4kKD8FCrK54LYW/pnVmTULw==} + rolldown@1.0.0-beta.7-commit.8d551a2: + resolution: {integrity: sha512-2kQgT5y2g/JIZJ/6Xtfz+YvZNUNzKCmCLhVRHlfmax+CiS24tt8ZxVwm8GbeA2RrT+E5WFIVHLdmTpxDcI8qdQ==} hasBin: true peerDependencies: - '@oxc-project/runtime': 0.62.0 + '@oxc-project/runtime': 0.63.0 peerDependenciesMeta: '@oxc-project/runtime': optional: true @@ -8802,9 +8802,9 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.0 - '@oxc-project/runtime@0.62.0': {} + '@oxc-project/runtime@0.63.0': {} - '@oxc-project/types@0.62.0': {} + '@oxc-project/types@0.63.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -8876,42 +8876,42 @@ snapshots: '@publint/pack@0.1.1': {} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.25f3c61': + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.8d551a2': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.25f3c61': + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.8d551a2': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.25f3c61': + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.8d551a2': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.25f3c61': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.8d551a2': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.25f3c61': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.8d551a2': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.25f3c61': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.8d551a2': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.25f3c61': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.8d551a2': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.25f3c61': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.8d551a2': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.25f3c61': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.8d551a2': dependencies: '@napi-rs/wasm-runtime': 0.2.7 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.25f3c61': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.8d551a2': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.25f3c61': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.8d551a2': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.25f3c61': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.8d551a2': optional: true '@rollup/plugin-alias@5.1.1(rollup@4.34.9)': @@ -12775,25 +12775,25 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.7-commit.25f3c61(@oxc-project/runtime@0.62.0)(typescript@5.7.3): + rolldown@1.0.0-beta.7-commit.8d551a2(@oxc-project/runtime@0.63.0)(typescript@5.7.3): dependencies: - '@oxc-project/types': 0.62.0 + '@oxc-project/types': 0.63.0 '@valibot/to-json-schema': 1.0.0(valibot@1.0.0(typescript@5.7.3)) valibot: 1.0.0(typescript@5.7.3) optionalDependencies: - '@oxc-project/runtime': 0.62.0 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.25f3c61 - '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.25f3c61 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.25f3c61 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.25f3c61 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.25f3c61 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.25f3c61 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.25f3c61 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.25f3c61 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.25f3c61 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.25f3c61 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.25f3c61 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.25f3c61 + '@oxc-project/runtime': 0.63.0 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.8d551a2 + '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.8d551a2 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.8d551a2 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.8d551a2 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.8d551a2 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.8d551a2 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.8d551a2 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.8d551a2 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.8d551a2 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.8d551a2 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.8d551a2 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.8d551a2 transitivePeerDependencies: - typescript From 7912459239d438570eb21ef71a05cc8c3579ff72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Wed, 9 Apr 2025 11:47:40 +0900 Subject: [PATCH 048/102] perf: define viteMetadata instead of assign (#106) --- packages/vite/src/node/build.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index 8a1acdb6710e64..a1b891a5a3282b 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -1359,7 +1359,11 @@ function injectChunkMetadata( __modules: chunk.modules, }) } - chunk.viteMetadata = chunkMetadataMap.get(key) + // define instead of assign to avoid detected as a change + // https://github.com/rolldown/rolldown/blob/f4c5ff27799f2b0152c689c398e61bc7d30429ff/packages/rolldown/src/utils/transform-to-rollup-output.ts#L87 + Object.defineProperty(chunk, 'viteMetadata', { + value: chunkMetadataMap.get(key), + }) Object.defineProperty(chunk, 'modules', { get() { return chunk.viteMetadata!.__modules From 4bd6cfe1c595ba4f7822bfbe3abf74b8ae2d1698 Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Wed, 9 Apr 2025 10:10:44 +0200 Subject: [PATCH 049/102] chore: update the issue template (#99) --- .github/ISSUE_TEMPLATE/bug_report.yml | 20 ++-- .github/ISSUE_TEMPLATE/config.yml | 17 ++- .github/ISSUE_TEMPLATE/docs.yml | 43 ------- .github/ISSUE_TEMPLATE/feature-regression.yml | 105 ++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.yml | 48 -------- .github/ISSUE_TEMPLATE/performance.yml | 97 ++++++++++++++++ 6 files changed, 218 insertions(+), 112 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/docs.yml create mode 100644 .github/ISSUE_TEMPLATE/feature-regression.yml delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/ISSUE_TEMPLATE/performance.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 7e358defc3b332..778fa0bd7df5e0 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,5 +1,5 @@ -name: "\U0001F41E Bug report" -description: Report an issue with Vite +name: "\U0001F41E General Bug report" +description: Report an issue with `rolldown-vite` labels: [pending triage] type: Bug body: @@ -19,7 +19,7 @@ body: id: reproduction attributes: label: Reproduction - description: Please provide a link via [StackBlitz](https://stackblitz.com/fork/github/vitejs/rolldown-vite/tree/rolldown-vite/packages/create-vite/template-vanilla) or a link to a repo that can reproduce the problem you ran into. `npm create vite@latest` and `npm create vite-extra@latest` (for SSR or library repros) can be used as a starter template. A [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) is required ([Why?](https://antfu.me/posts/why-reproductions-are-required)). If a report is vague (e.g. just a generic error message) and has no reproduction, it will receive a "needs reproduction" label. If no reproduction is provided after 3 days, it will be auto-closed. + description: Please provide a link via [StackBlitz](https://stackblitz.com/fork/github/vitejs/rolldown-vite/tree/rolldown-vite/packages/create-vite/template-vanilla) or a link to a repo that can reproduce the problem you ran into. `npm create vite@latest` and `npm create vite-extra@latest` (for SSR or library repros) can be used as a starter template (don't forget to alias `vite` to `rolldown-vite`). A [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) is required ([Why?](https://antfu.me/posts/why-reproductions-are-required)). If a report is vague (e.g. just a generic error message) and has no reproduction, it will receive a "needs reproduction" label. If no reproduction is provided after 3 days, it will be auto-closed. placeholder: Reproduction URL validations: required: true @@ -33,7 +33,7 @@ body: id: system-info attributes: label: System Info - description: Output of `npx envinfo --system --npmPackages '{vite,@vitejs/*,rollup}' --binaries --browsers` + description: Output of `npx envinfo --system --npmPackages '{vite,rolldown-vite,@vitejs/*,rollup,rolldown}' --binaries --browsers` render: shell placeholder: System, Binaries, Browsers validations: @@ -75,17 +75,15 @@ body: label: Validations description: Before submitting the issue, please make sure you do the following options: - - label: Follow our [Code of Conduct](https://github.com/vitejs/vite/blob/main/CODE_OF_CONDUCT.md) + - label: Follow our [Code of Conduct](https://github.com/vitejs/rolldown-vite/blob/main/CODE_OF_CONDUCT.md) required: true - - label: Read the [Contributing Guidelines](https://github.com/vitejs/vite/blob/main/CONTRIBUTING.md). + - label: Read the [Contributing Guidelines](https://github.com/vitejs/rolldown-vite/blob/main/CONTRIBUTING.md). required: true - - label: Read the [docs](https://vite.dev/guide). + - label: Read the [docs](https://vite.dev/guide) and the [Rolldown-related guide](https://main.vite.dev/guide/rolldown.html). required: true - - label: Check that there isn't [already an issue](https://github.com/vitejs/vite/issues) that reports the same bug to avoid creating a duplicate. + - label: Check that there isn't [already an issue](https://github.com/vitejs/rolldown-vite/issues) that reports the same bug to avoid creating a duplicate. required: true - - label: Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to [vuejs/core](https://github.com/vuejs/core) instead. - required: true - - label: Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/vitejs/vite/discussions) or join our [Discord Chat Server](https://chat.vite.dev/). + - label: Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/vitejs/rolldown-vite/discussions) or join our [Discord Chat Server](https://chat.vite.dev/). required: true - label: The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug. required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index e36d5d53edcd7f..22db5717f32282 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,14 +1,11 @@ blank_issues_enabled: false contact_links: - - name: Vite Plugin React Issues - url: https://github.com/vitejs/vite-plugin-react/issues/new/choose - about: React related issues should be reported on the vite-plugin-react repository. - - name: Vite Plugin Vue Issues - url: https://github.com/vitejs/vite-plugin-vue/issues/new/choose - about: Vue related issues should be reported on the vite-plugin-vue repository. - - name: Discord Chat - url: https://chat.vite.dev - about: Ask questions and discuss with other Vite users in real time. + - name: Vite Discord + url: https://chat.vite.dev/ + about: Do you have questions around Vite? Then join the Discord to discuss them with other Vite users. + - name: Rolldown Discord + url: https://chat.rolldown.rs/ + about: Ask questions and discuss with other Rolldown users in real time. - name: Questions & Discussions - url: https://github.com/vitejs/vite/discussions + url: https://github.com/vitejs/rolldown-vite/discussions about: Use GitHub discussions for message-board style questions and discussions. diff --git a/.github/ISSUE_TEMPLATE/docs.yml b/.github/ISSUE_TEMPLATE/docs.yml deleted file mode 100644 index 5c8175588107f5..00000000000000 --- a/.github/ISSUE_TEMPLATE/docs.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: "\U0001F4DA Documentation" -description: Suggest a change or new page to be added to vite.dev -labels: [documentation] -body: - - type: markdown - attributes: - value: | - Thanks for taking the time to fill out this issue! - - type: checkboxes - id: documentation_is - attributes: - label: Documentation is - options: - - label: Missing - - label: Outdated - - label: Confusing - - label: Not sure? - - type: textarea - id: description - attributes: - label: Explain in Detail - description: A clear and concise description of your suggestion. If you intend to submit a PR for this issue, tell us in the description. Thanks! - placeholder: The description of ... page is not clear. I thought it meant ... but it wasn't. - validations: - required: true - - type: textarea - id: suggestion - attributes: - label: Your Suggestion for Changes - validations: - required: true - - type: input - id: reproduction - attributes: - label: Reproduction - description: If you have a reproduction, please provide a link via [StackBlitz](https://stackblitz.com/fork/github/vitejs/rolldown-vite/tree/rolldown-vite/packages/create-vite/template-vanilla) or a link to a repo that can reproduce the problem you ran into. `npm create vite@latest` and `npm create vite-extra@latest` (for SSR or library repros) can be used as a starter template. - placeholder: Reproduction URL - - type: textarea - id: reproduction-steps - attributes: - label: Steps to reproduce - description: Please provide any reproduction steps that may need to be described. E.g. if it happens only when running the dev or build script make sure it's clear which one to use. - placeholder: Run `npm install` followed by `npm run dev` diff --git a/.github/ISSUE_TEMPLATE/feature-regression.yml b/.github/ISSUE_TEMPLATE/feature-regression.yml new file mode 100644 index 00000000000000..36258724728547 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-regression.yml @@ -0,0 +1,105 @@ +name: "\U0001F4A5 Feature Regression" +description: Report a feature regression issue with `rolldown-vite` +labels: ["c: regression", pending triage] +type: Bug +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to report a feature regression. A regression is when a feature that works as expected when using `vite` no longer behaves correctly. + - type: textarea + id: regression-description + attributes: + label: Describe the regression + description: A clear and concise description of the regression. If you intend to submit a PR for this issue, let us know in the description. Thanks! + placeholder: The feature used to work like ... Now it behaves like ... + validations: + required: true + - type: input + id: reproduction + attributes: + label: Reproduction + description: Please provide a link via [StackBlitz](https://stackblitz.com/fork/github/vitejs/rolldown-vite/tree/rolldown-vite/packages/create-vite/template-vanilla) or a link to a repo that can reproduce the regression issue. A [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) is required ([Why?](https://antfu.me/posts/why-reproductions-are-required)). If no reproduction is provided after 3 days, the issue may be auto-closed. + placeholder: Reproduction URL + validations: + required: true + - type: textarea + id: expected-behavior + attributes: + label: Expected Behavior + description: Describe what you expected to happen when using the feature. + placeholder: I expected the feature to ... + validations: + required: true + - type: textarea + id: actual-behavior + attributes: + label: Actual Behavior + description: Describe what actually happens when using the feature. + placeholder: The feature currently behaves like ... + validations: + required: true + - type: textarea + id: reproduction-steps + attributes: + label: Steps to Reproduce + description: Please provide any reproduction steps that may need to be described. E.g., if it happens only when running the dev or build script, make sure it's clear which one to use. + placeholder: Run `npm install` followed by `npm run dev` + - type: textarea + id: system-info + attributes: + label: System Info + description: Output of `npx envinfo --system --npmPackages '{vite,rolldown-vite,@vitejs/*,rollup,rolldown}' --binaries --browsers` + render: shell + placeholder: System, Binaries, Browsers + validations: + required: true + - type: dropdown + id: package-manager + attributes: + label: Used Package Manager + description: Select the used package manager + options: + - npm + - yarn + - pnpm + - bun + validations: + required: true + - type: textarea + id: logs + attributes: + label: Logs + description: | + Optional if provided reproduction. Please try not to insert an image but copy paste the log text. + + 1. Run `vite` or `vite build` with the `--debug` flag. + 2. Provide the error log here in the format below. + + ```` +
+ Click to expand! + + ```shell + // paste the log text here + ``` +
+ ```` + - type: checkboxes + id: checkboxes + attributes: + label: Validations + description: Before submitting the issue, please make sure you do the following + options: + - label: Follow our [Code of Conduct](https://github.com/vitejs/rolldown-vite/blob/main/CODE_OF_CONDUCT.md) + required: true + - label: Read the [Contributing Guidelines](https://github.com/vitejs/rolldown-vite/blob/main/CONTRIBUTING.md). + required: true + - label: Read the [docs](https://vite.dev/guide) and the [Rolldown-related guide](https://main.vite.dev/guide/rolldown.html). + required: true + - label: Check that there isn't [already an issue](https://github.com/vitejs/rolldown-vite/issues) that reports the same regression to avoid creating a duplicate. + required: true + - label: Check that this is a concrete regression. For Q&A open a [GitHub Discussion](https://github.com/vitejs/rolldown-vite/discussions) or join our [Discord Chat Server](https://chat.vite.dev/). + required: true + - label: The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the regression. + required: true diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml deleted file mode 100644 index 0563374253b6f3..00000000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: "\U0001F680 New feature proposal" -description: Propose a new feature to be added to Vite -labels: ["pending triage"] -type: Feature -body: - - type: markdown - attributes: - value: | - Thanks for your interest in the project and taking the time to fill out this feature report! - - type: textarea - id: feature-description - attributes: - label: Description - description: "Clear and concise description of the problem. Please make the reason and usecases as detailed as possible. If you intend to submit a PR for this issue, tell us in the description. Thanks!" - placeholder: As a developer using Vite I want [goal / wish] so that [benefit]. - validations: - required: true - - type: textarea - id: suggested-solution - attributes: - label: Suggested solution - description: "In module [xy] we could provide following implementation..." - validations: - required: true - - type: textarea - id: alternative - attributes: - label: Alternative - description: Clear and concise description of any alternative solutions or features you've considered. - - type: textarea - id: additional-context - attributes: - label: Additional context - description: Any other context or screenshots about the feature request here. - - type: checkboxes - id: checkboxes - attributes: - label: Validations - description: Before submitting the issue, please make sure you do the following - options: - - label: Follow our [Code of Conduct](https://github.com/vitejs/vite/blob/main/CODE_OF_CONDUCT.md) - required: true - - label: Read the [Contributing Guidelines](https://github.com/vitejs/vite/blob/main/CONTRIBUTING.md). - required: true - - label: Read the [docs](https://vite.dev/guide). - required: true - - label: Check that there isn't already an issue that request the same feature to avoid creating a duplicate. - required: true diff --git a/.github/ISSUE_TEMPLATE/performance.yml b/.github/ISSUE_TEMPLATE/performance.yml new file mode 100644 index 00000000000000..dfc279adb10b37 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/performance.yml @@ -0,0 +1,97 @@ +name: "\U0001F3C3 Performance Degradation" +description: Report a performance issue with `rolldown-vite` +labels: ["c: performance", pending triage] +type: Bug +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to report a performance issue, such as a slow build or a slow dev server compared to using the main `vite` package. + - type: textarea + id: performance-description + attributes: + label: Describe the performance issue + description: A clear and concise description of the performance issue. If you intend to submit a PR for this issue, let us know in the description. Thanks! + placeholder: I am doing ... What I expect is ... What actually happening is ... + validations: + required: true + - type: input + id: reproduction + attributes: + label: Reproduction + description: Please provide a link via [StackBlitz](https://stackblitz.com/fork/github/vitejs/rolldown-vite/tree/rolldown-vite/packages/create-vite/template-vanilla) or a link to a repo that can reproduce the performance issue. A [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) is required ([Why?](https://antfu.me/posts/why-reproductions-are-required)). If no reproduction is provided after 3 days, the issue may be auto-closed. + placeholder: Reproduction URL + validations: + required: true + - type: textarea + id: performance-metrics + attributes: + label: Performance Metrics + description: Provide any relevant performance metrics (e.g., build time, memory usage, CPU usage). Include before/after comparisons if applicable. + placeholder: "Build time with `rolldown-vite`: X seconds, build time with plain `vite`: X seconds, etc." + validations: + required: true + - type: textarea + id: reproduction-steps + attributes: + label: Steps to reproduce + description: Please provide any reproduction steps that may need to be described. E.g., if it happens only when running the dev or build script, make sure it's clear which one to use. + placeholder: Run `npm install` followed by `npm run dev` + - type: textarea + id: system-info + attributes: + label: System Info + description: Output of `npx envinfo --system --npmPackages '{vite,rolldown-vite,@vitejs/*,rollup,rolldown}' --binaries --browsers` + render: shell + placeholder: System, Binaries, Browsers + validations: + required: true + - type: dropdown + id: package-manager + attributes: + label: Used Package Manager + description: Select the used package manager + options: + - npm + - yarn + - pnpm + - bun + validations: + required: true + - type: textarea + id: logs + attributes: + label: Logs + description: | + Optional if provided reproduction. Please try not to insert an image but copy paste the log text. + + 1. Run `vite` or `vite build` with the `--debug` flag. + 2. Provide the error log here in the format below. + + ```` +
+ Click to expand! + + ```shell + // paste the log text here + ``` +
+ ```` + - type: checkboxes + id: checkboxes + attributes: + label: Validations + description: Before submitting the issue, please make sure you do the following + options: + - label: Follow our [Code of Conduct](https://github.com/vitejs/rolldown-vite/blob/main/CODE_OF_CONDUCT.md) + required: true + - label: Read the [Contributing Guidelines](https://github.com/vitejs/rolldown-vite/blob/main/CONTRIBUTING.md). + required: true + - label: Read the [docs](https://vite.dev/guide) and the [Rolldown-related guide](https://main.vite.dev/guide/rolldown.html). + required: true + - label: Check that there isn't [already an issue](https://github.com/vitejs/rolldown-vite/issues) that reports the same bug to avoid creating a duplicate. + required: true + - label: Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/vitejs/rolldown-vite/discussions) or join our [Discord Chat Server](https://chat.vite.dev/). + required: true + - label: The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug. + required: true From e28b1c0b988a37fbe56068dab3a5cf58fa3bbfba Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Thu, 10 Apr 2025 19:45:32 +0900 Subject: [PATCH 050/102] feat: update rolldown --- packages/vite/package.json | 2 +- pnpm-lock.yaml | 106 ++++++++++++++++++------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index 8c3de3030c0935..fdc0f15ab1fc5f 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -90,7 +90,7 @@ "lightningcss": "^1.29.3", "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rolldown": "1.0.0-beta.7-commit.8d551a2", + "rolldown": "1.0.0-beta.7-commit.170d158", "tinyglobby": "^0.2.12" }, "optionalDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7d8397d875ce6c..50cf00294bde71 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -239,8 +239,8 @@ importers: specifier: ^8.5.3 version: 8.5.3 rolldown: - specifier: 1.0.0-beta.7-commit.8d551a2 - version: 1.0.0-beta.7-commit.8d551a2(@oxc-project/runtime@0.63.0)(typescript@5.7.3) + specifier: 1.0.0-beta.7-commit.170d158 + version: 1.0.0-beta.7-commit.170d158(@oxc-project/runtime@0.63.0)(typescript@5.7.3) tinyglobby: specifier: ^0.2.12 version: 0.2.12 @@ -2928,63 +2928,63 @@ packages: resolution: {integrity: sha512-TvCl79Y8v18ZhFGd5mjO1kYPovSBq3+4LVCi5Nfl1JI8fS8i8kXbgQFGwBJRXczim8GlW8c2LMBKTtExYXOy/A==} engines: {node: '>=18'} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.8d551a2': - resolution: {integrity: sha512-BsSrC2Z8mKAAHAZdSwVUf4zXYugp2QlJ9AtXSles/oPbMFuT/O4kJmeo4jfr0TzgX1XjsLjT53KMykZvoEjzug==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.170d158': + resolution: {integrity: sha512-uZi3KrkkYw70w7azr9uXKgPorGfO3zBGzJRjAokQqHVzuaHHHHuLni0XoqlZaWPqg8csdrzXLwzwct/Bq5suYg==} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.8d551a2': - resolution: {integrity: sha512-M2PCNCeXsTUFYXjPqPuAqnYOFdAos/78W7ZsTGCdxNnPsamUSeAT8xi0YNGEYdU3yElgH/wSjG25wrsntNuv3A==} + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.170d158': + resolution: {integrity: sha512-H11dcfkv4QfztJIqYU91gqg4a6hWJ9FnRxTdnu/gq8nWkTOxZi8RRlLymUADX0jBIMf8F0cIC8FCj3R4EMR33Q==} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.8d551a2': - resolution: {integrity: sha512-jfMEmOObOJ7vkPcn2uB8vo+ATTLTT5gEeXSv2vImUUjPwbPwcrm7d2gdDC08iMU/i36NwzD3JgkLmPVTbw6ehg==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.170d158': + resolution: {integrity: sha512-VZKAtNrBZsPFpNVch9RpAAQfknILRcJkr1TalwfEXdGsnzubgVJZrPq0qtOyiCJam33sqEwzWzO6E53xyQVZJg==} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.8d551a2': - resolution: {integrity: sha512-RhRW+jtOT4TiWIgOMOk+2LqWrU5D7v721LP1+XTlx/utX8zM+vbrNJcQnzmC1/wXEMyq8MZc6PUjCIjRU8HKiA==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.170d158': + resolution: {integrity: sha512-QwPYwoYPVogCibUWeKgHpnm/GFVvpuJ+rTCs1NooLDFXxxkLdCGUo5a/84PEd6DBiLhF91Tmil4JWZrtkUg/wA==} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.8d551a2': - resolution: {integrity: sha512-hx+CHAdLj1gOP7a3a3/DgJshD/JLqN+P4xQXUDvV3ZsNJud/LNWXOOCdDXXIKC38Ko+htn4EbJAe5V5W3RIRNw==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.170d158': + resolution: {integrity: sha512-bmfTte+6+f7aJG3EMCnJzJ4xjobsObsM6GvSpElFfm+wLak6mMnyPESYkuX6uljTWn0l4sIpYU/9/BZfM8FDVw==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.8d551a2': - resolution: {integrity: sha512-AjsNGsH2n5p/viFkUMbHXJ66FgU7bUmBKi55j0FBGXtD2i3+6I+yRS6wwCQWNy4gf+Ga6NZ3ywHp57svwEjp/g==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.170d158': + resolution: {integrity: sha512-vTr3CIwAHKSZRv7qkGxEDZge/0JF6A+mGQoaBacRTPcrKY1is99TQwrLoHm/W2rRORsZ/6duf6MhPMka8hg0sA==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.8d551a2': - resolution: {integrity: sha512-u0TOdqY/l+lr+09QOvAIG8TBQ3AbLCXny6RK2ooy4vuNNowLGMQK1RvudmM+moEZkYic2i7+5KikEf0AqRRoYQ==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.170d158': + resolution: {integrity: sha512-Nvvmt/sjd/Ob/qM4B5o9lkUKxOmP7UnoOO/99Dp6rEwQor+8lc6oeJDWChi8HUkF/OXeVhSKkpU3L+hRkBsdwQ==} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.8d551a2': - resolution: {integrity: sha512-OPQHsyN6QRZmnc7emIoEczXMM4smtVyYOgcQ+JLqT2Anvmj5+J7t7eDItsfG/jegA/GXOLYobZg1VnBmsg7CDQ==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.170d158': + resolution: {integrity: sha512-tW3ajcRsKpscdla/x5Y/nVfyjXmEtQV3/xOYDoNA3mNb9zdehWxf2Lb5h4hvo0k7bI9NcLVziph5vLRr5n5QIQ==} cpu: [x64] os: [linux] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.8d551a2': - resolution: {integrity: sha512-FwRjDEBTxKQDrllqE6g30mIqgW8f5wcupzXASKgXZqsziRZUeNThbu1AzObqeMPt1Lpj3q52npn19AkK9D3h8A==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.170d158': + resolution: {integrity: sha512-MA0NtZyqDRZ4ZsKDHOM/NFZ3Qr0/UyVbQJQP3vfBPCAb1FDdDjcgFz6N7PrKKkd9XWfm3lVkyjy9vOhzYmFRBQ==} engines: {node: '>=14.21.3'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.8d551a2': - resolution: {integrity: sha512-pVojg4Qb2AUKVNRK+18+kWeHhjXkG1OKGr6Zhl73ROyecs5IvBkSYFszzDeXwaM2uSgQdAK6mIYpSKzb1h7VGg==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.170d158': + resolution: {integrity: sha512-o2K46Obh/R46ECRmn0KOWX6+nF2M5Zkg9X7L4P55dqK4zJ2JBdhUDeYSaiY+QhmQcAhJgXfU2jKJGD4IMdRO5Q==} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.8d551a2': - resolution: {integrity: sha512-xdMZNsO5jC5TB1jnwI7jpc+XWaK4vARc8Z1dAhS7jrVIpNc2I21uh0Rnxhq3bn+Pz0AR/njHvcTueYc0vgTMvg==} + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.170d158': + resolution: {integrity: sha512-pZDsbhSTD+mOgjHgjAv+no9gZf5XV5qMyoC01QeeDozUjuhTTrd0oU2QL5RYYBb7Ub7hwl99Lr8zU9vX/s7KYw==} cpu: [ia32] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.8d551a2': - resolution: {integrity: sha512-cw57+QCAzXP9AUlRROeX8lUqibsIxOG7djedfULxHHwiPLan59QF0ao3C8D8zQAtDD3CKK5YcikHORKUOh+duA==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.170d158': + resolution: {integrity: sha512-1RZ7BCb9BbIurmdNwHkwQusUSYgp1lHzO/kbkzH13Zr/H6v+RXrCxqqMzddzuCXqlAFg8jRyaJVqoUBuWOAa5Q==} cpu: [x64] os: [win32] @@ -6663,8 +6663,8 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.7-commit.8d551a2: - resolution: {integrity: sha512-2kQgT5y2g/JIZJ/6Xtfz+YvZNUNzKCmCLhVRHlfmax+CiS24tt8ZxVwm8GbeA2RrT+E5WFIVHLdmTpxDcI8qdQ==} + rolldown@1.0.0-beta.7-commit.170d158: + resolution: {integrity: sha512-BXeXCVWQW5tQYSqxITC5cWvEfyqZVbustA6OHXRlC0mbob03PI+kfk/2OMi4wd1gev9o9jbe1eKxl/lG0aa87A==} hasBin: true peerDependencies: '@oxc-project/runtime': 0.63.0 @@ -8879,42 +8879,42 @@ snapshots: '@publint/pack@0.1.1': {} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.8d551a2': + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.170d158': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.8d551a2': + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.170d158': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.8d551a2': + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.170d158': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.8d551a2': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.170d158': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.8d551a2': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.170d158': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.8d551a2': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.170d158': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.8d551a2': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.170d158': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.8d551a2': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.170d158': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.8d551a2': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.170d158': dependencies: '@napi-rs/wasm-runtime': 0.2.7 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.8d551a2': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.170d158': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.8d551a2': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.170d158': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.8d551a2': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.170d158': optional: true '@rollup/plugin-alias@5.1.1(rollup@4.34.9)': @@ -12778,25 +12778,25 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.7-commit.8d551a2(@oxc-project/runtime@0.63.0)(typescript@5.7.3): + rolldown@1.0.0-beta.7-commit.170d158(@oxc-project/runtime@0.63.0)(typescript@5.7.3): dependencies: '@oxc-project/types': 0.63.0 '@valibot/to-json-schema': 1.0.0(valibot@1.0.0(typescript@5.7.3)) valibot: 1.0.0(typescript@5.7.3) optionalDependencies: '@oxc-project/runtime': 0.63.0 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.8d551a2 - '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.8d551a2 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.8d551a2 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.8d551a2 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.8d551a2 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.8d551a2 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.8d551a2 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.8d551a2 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.8d551a2 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.8d551a2 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.8d551a2 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.8d551a2 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.170d158 + '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.170d158 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.170d158 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.170d158 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.170d158 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.170d158 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.170d158 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.170d158 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.170d158 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.170d158 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.170d158 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.170d158 transitivePeerDependencies: - typescript From 6628d44fa253fa4b6df945c4a6e93b098420f014 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Thu, 10 Apr 2025 19:48:53 +0900 Subject: [PATCH 051/102] chore: fix lint --- playground/vitestSetup.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/playground/vitestSetup.ts b/playground/vitestSetup.ts index 4173c3c55bd783..2fc8aa706e2251 100644 --- a/playground/vitestSetup.ts +++ b/playground/vitestSetup.ts @@ -7,7 +7,7 @@ import type { InlineConfig, Logger, PluginOption, - ResolvedConfig, + // ResolvedConfig, UserConfig, ViteDevServer, } from 'vite' @@ -242,12 +242,12 @@ export async function startDefaultServe(): Promise { await page.goto(viteTestUrl) } else { process.env.VITE_INLINE = 'inline-build' - let resolvedConfig: ResolvedConfig + // let resolvedConfig: ResolvedConfig // determine build watch const resolvedPlugin: () => PluginOption = () => ({ name: 'vite-plugin-watcher', - configResolved(config) { - resolvedConfig = config + configResolved(_config) { + // resolvedConfig = config }, }) const buildConfig = mergeConfig( From da2cc9626520e2556c0dd0b5273dbd1aa4a5a7c8 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Thu, 10 Apr 2025 19:55:18 +0900 Subject: [PATCH 052/102] release: v6.3.0-beta.6 --- packages/vite/CHANGELOG.md | 19 +++++++++++++++++++ packages/vite/package.json | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index abf27e8013f614..95855252dd62ee 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,22 @@ +## 6.3.0-beta.6 (2025-04-10) + +* feat: update rolldown ([e28b1c0](https://github.com/vitejs/rolldown-vite/commit/e28b1c0)) +* feat: update rolldown ([c7e3e04](https://github.com/vitejs/rolldown-vite/commit/c7e3e04)) +* perf: define viteMetadata instead of assign (#106) ([7912459](https://github.com/vitejs/rolldown-vite/commit/7912459)), closes [#106](https://github.com/vitejs/rolldown-vite/issues/106) +* perf(css): avoid constructing `renderedModules` (#19775) ([59d0b35](https://github.com/vitejs/rolldown-vite/commit/59d0b35)), closes [#19775](https://github.com/vitejs/rolldown-vite/issues/19775) +* fix: correct the behavior when multiple transform filter options are specified (#19818) ([7200dee](https://github.com/vitejs/rolldown-vite/commit/7200dee)), closes [#19818](https://github.com/vitejs/rolldown-vite/issues/19818) +* fix: reject requests with `#` in request-target (#19830) ([175a839](https://github.com/vitejs/rolldown-vite/commit/175a839)), closes [#19830](https://github.com/vitejs/rolldown-vite/issues/19830) +* fix: unbundle `fdir` to fix `commonjsOptions.dynamicRequireTargets` (#19791) ([71227be](https://github.com/vitejs/rolldown-vite/commit/71227be)), closes [#19791](https://github.com/vitejs/rolldown-vite/issues/19791) +* fix(css): remove empty chunk imports correctly when chunk file name contained special characters (#1 ([b125172](https://github.com/vitejs/rolldown-vite/commit/b125172)), closes [#19814](https://github.com/vitejs/rolldown-vite/issues/19814) +* fix(dev): make query selector regexes more inclusive (fix #19213) (#19767) ([f530a72](https://github.com/vitejs/rolldown-vite/commit/f530a72)), closes [#19213](https://github.com/vitejs/rolldown-vite/issues/19213) [#19767](https://github.com/vitejs/rolldown-vite/issues/19767) +* fix(module-runner): allow already resolved id as entry (#19768) ([e2e11b1](https://github.com/vitejs/rolldown-vite/commit/e2e11b1)), closes [#19768](https://github.com/vitejs/rolldown-vite/issues/19768) +* fix(types): remove the `keepProcessEnv` from the `DefaultEnvironmentOptions` type (#19796) ([36935b5](https://github.com/vitejs/rolldown-vite/commit/36935b5)), closes [#19796](https://github.com/vitejs/rolldown-vite/issues/19796) +* chore: bump rolldown (#105) ([8646e4e](https://github.com/vitejs/rolldown-vite/commit/8646e4e)), closes [#105](https://github.com/vitejs/rolldown-vite/issues/105) +* test: tweak generateCodeFrame test (#19812) ([8fe3538](https://github.com/vitejs/rolldown-vite/commit/8fe3538)), closes [#19812](https://github.com/vitejs/rolldown-vite/issues/19812) +* docs(vite): fix description of `transformIndexHtml` hook (#19799) ([a0e1a04](https://github.com/vitejs/rolldown-vite/commit/a0e1a04)), closes [#19799](https://github.com/vitejs/rolldown-vite/issues/19799) + + + ## 6.3.0-beta.5 (2025-04-03) * chore: cleanup changelog ([b17bade](https://github.com/vitejs/rolldown-vite/commit/b17bade)) diff --git a/packages/vite/package.json b/packages/vite/package.json index fdc0f15ab1fc5f..f6cbaade3580e1 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "rolldown-vite", - "version": "6.3.0-beta.5", + "version": "6.3.0-beta.6", "type": "module", "license": "MIT", "author": "Evan You", From 698cbea07d7708331bd46becaf97400b20050a51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Sat, 12 Apr 2025 19:19:44 +0900 Subject: [PATCH 053/102] fix: export `rolldownVersion` (#109) --- packages/vite/src/node/publicUtils.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/vite/src/node/publicUtils.ts b/packages/vite/src/node/publicUtils.ts index 350cbaa0864a08..132bd79d421f00 100644 --- a/packages/vite/src/node/publicUtils.ts +++ b/packages/vite/src/node/publicUtils.ts @@ -24,6 +24,7 @@ export { mergeAlias, createFilter, rollupVersion, + rolldownVersion, } from './utils' export { perEnvironmentPlugin } from './plugin' export { perEnvironmentState } from './environment' From 6ec06b648a0f0dc4441fff63bce39905e8f23b89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Sat, 12 Apr 2025 19:53:47 +0900 Subject: [PATCH 054/102] feat(optimizer): improve esbuild plugin conversion compat (#110) --- .../vite/src/node/optimizer/pluginConverter.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/node/optimizer/pluginConverter.ts b/packages/vite/src/node/optimizer/pluginConverter.ts index fbec09de4c6f39..f7fca0275b1905 100644 --- a/packages/vite/src/node/optimizer/pluginConverter.ts +++ b/packages/vite/src/node/optimizer/pluginConverter.ts @@ -3,6 +3,7 @@ import type * as esbuild from 'esbuild' import type { ImportKind, LoadResult, + PartialResolvedId, PluginContext, ResolveIdResult, Plugin as RolldownPlugin, @@ -21,7 +22,10 @@ type ResolveIdHandler = ( id: string, importer: string | undefined, opts: { kind: ImportKind }, -) => MaybePromise +) => MaybePromise< + | (PartialResolvedId & { namespace?: string }) + | Exclude +> type LoadHandler = (this: PluginContext, id: string) => MaybePromise export function convertEsbuildPluginToRolldownPlugin( @@ -106,6 +110,7 @@ export function convertEsbuildPluginToRolldownPlugin( isSetupDone = true } + const usedNamespaces = new Set() return { name: esbuildPlugin.name, async options(inputOptions) { @@ -146,9 +151,19 @@ export function convertEsbuildPluginToRolldownPlugin( for (const handler of resolveIdHandlers) { const result = await handler.call(this, id, importer, opts) if (result) { + if (typeof result === 'object' && result.namespace) { + usedNamespaces.add(result.namespace) + } return result } } + if (usedNamespaces.size) { + const [importerWithoutNamespace, namespaceFromImporter] = + idToPathAndNamespace(importer) + if (usedNamespaces.has(namespaceFromImporter)) { + return await this.resolve(id, importerWithoutNamespace, opts) + } + } }, async load(id) { for (const handler of loadHandlers) { @@ -223,6 +238,7 @@ function createResolveIdHandler( id: result.namespace ? `${result.namespace}:${result.path}` : result.path, external: result.external, moduleSideEffects: result.sideEffects, + namespace: result.namespace, } } } From 0eb422d3e3bef7c7350b6001490177a63b5672ec Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Sat, 12 Apr 2025 20:04:51 +0900 Subject: [PATCH 055/102] release: v6.3.0-beta.7 --- packages/vite/CHANGELOG.md | 12 ++++++++++++ packages/vite/package.json | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index 95855252dd62ee..4bc96976f8a4cf 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,15 @@ +## 6.3.0-beta.7 (2025-04-12) + +* feat(optimizer): improve esbuild plugin conversion compat (#110) ([6ec06b6](https://github.com/vitejs/rolldown-vite/commit/6ec06b6)), closes [#110](https://github.com/vitejs/rolldown-vite/issues/110) +* fix: addWatchFile doesn't work if base is specified (fixes #19792) (#19794) ([8bed1de](https://github.com/vitejs/rolldown-vite/commit/8bed1de)), closes [#19792](https://github.com/vitejs/rolldown-vite/issues/19792) [#19794](https://github.com/vitejs/rolldown-vite/issues/19794) +* fix: export `rolldownVersion` (#109) ([698cbea](https://github.com/vitejs/rolldown-vite/commit/698cbea)), closes [#109](https://github.com/vitejs/rolldown-vite/issues/109) +* fix(hmr): run HMR handler sequentially (#19793) ([380c10e](https://github.com/vitejs/rolldown-vite/commit/380c10e)), closes [#19793](https://github.com/vitejs/rolldown-vite/issues/19793) +* fix(preview): use host url to open browser (#19836) ([5003434](https://github.com/vitejs/rolldown-vite/commit/5003434)), closes [#19836](https://github.com/vitejs/rolldown-vite/issues/19836) +* release: v6.3.0-beta.2 ([bf9728e](https://github.com/vitejs/rolldown-vite/commit/bf9728e)) +* refactor: simplify pluginFilter implementation (#19828) ([0a0c50a](https://github.com/vitejs/rolldown-vite/commit/0a0c50a)), closes [#19828](https://github.com/vitejs/rolldown-vite/issues/19828) + + + ## 6.3.0-beta.6 (2025-04-10) * feat: update rolldown ([e28b1c0](https://github.com/vitejs/rolldown-vite/commit/e28b1c0)) diff --git a/packages/vite/package.json b/packages/vite/package.json index f6cbaade3580e1..0b326a3420a251 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "rolldown-vite", - "version": "6.3.0-beta.6", + "version": "6.3.0-beta.7", "type": "module", "license": "MIT", "author": "Evan You", From aa29797d3d421355a96e73d0cfe339f43abbdf88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Mon, 14 Apr 2025 17:36:46 +0900 Subject: [PATCH 056/102] fix: update oxc esbuild option warning message (#111) --- packages/vite/src/node/config.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index b5d795ab4a1ad4..f20a9c32afd43b 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -1615,7 +1615,9 @@ export async function resolveConfig( if (config.esbuild) { if (config.oxc) { logger.warn( - `Found esbuild and oxc options, will use oxc and ignore esbuild at transformer.`, + colors.yellow( + `Both esbuild and oxc options were set, oxc options would be used and esbuild options would be ignored.`, + ), ) } else { oxc = convertEsbuildConfigToOxcConfig(config.esbuild, logger) From e996d54d06b67cb1773e299ea6598debccc7712c Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Tue, 15 Apr 2025 13:54:08 +0900 Subject: [PATCH 057/102] feat: update rolldown --- packages/vite/package.json | 2 +- packages/vite/src/node/plugins/index.ts | 6 +- pnpm-lock.yaml | 106 ++++++++++++------------ 3 files changed, 56 insertions(+), 58 deletions(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index 0b326a3420a251..f99b2b14f801d7 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -90,7 +90,7 @@ "lightningcss": "^1.29.3", "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rolldown": "1.0.0-beta.7-commit.170d158", + "rolldown": "1.0.0-beta.7-commit.169739a", "tinyglobby": "^0.2.12" }, "optionalDependencies": { diff --git a/packages/vite/src/node/plugins/index.ts b/packages/vite/src/node/plugins/index.ts index 3df63eae1a270e..712e1292d2d481 100644 --- a/packages/vite/src/node/plugins/index.ts +++ b/packages/vite/src/node/plugins/index.ts @@ -88,9 +88,7 @@ export async function resolvePlugins( environment.config.consumer !== 'client' ) return false - return nativeModulePreloadPolyfillPlugin({ - skip: false, - }) + return nativeModulePreloadPolyfillPlugin() }, ) : modulePreloadPolyfillPlugin(config) @@ -127,7 +125,7 @@ export async function resolvePlugins( : oxcPlugin(config) : null, enableNativePlugin === true - ? nativeJsonPlugin({ ...config.json, isBuild }) + ? nativeJsonPlugin({ ...config.json, minify: isBuild }) : jsonPlugin(config.json, isBuild), enableNativePlugin === true ? nativeWasmHelperPlugin() : wasmHelperPlugin(), webWorkerPlugin(config), diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2891b6b8b0dcf7..065cfe5fb8bad2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -242,8 +242,8 @@ importers: specifier: ^8.5.3 version: 8.5.3 rolldown: - specifier: 1.0.0-beta.7-commit.170d158 - version: 1.0.0-beta.7-commit.170d158(@oxc-project/runtime@0.63.0)(typescript@5.7.3) + specifier: 1.0.0-beta.7-commit.169739a + version: 1.0.0-beta.7-commit.169739a(@oxc-project/runtime@0.63.0)(typescript@5.7.3) tinyglobby: specifier: ^0.2.12 version: 0.2.12 @@ -2931,63 +2931,63 @@ packages: resolution: {integrity: sha512-TvCl79Y8v18ZhFGd5mjO1kYPovSBq3+4LVCi5Nfl1JI8fS8i8kXbgQFGwBJRXczim8GlW8c2LMBKTtExYXOy/A==} engines: {node: '>=18'} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.170d158': - resolution: {integrity: sha512-uZi3KrkkYw70w7azr9uXKgPorGfO3zBGzJRjAokQqHVzuaHHHHuLni0XoqlZaWPqg8csdrzXLwzwct/Bq5suYg==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.169739a': + resolution: {integrity: sha512-sHgtO+itmn+7VMExgP94VQiODaB3y1QnXSKjJaBsWhB1dd7Kva6RlzHjcaZicP52qs++350yzuFvDqn7zktVMA==} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.170d158': - resolution: {integrity: sha512-H11dcfkv4QfztJIqYU91gqg4a6hWJ9FnRxTdnu/gq8nWkTOxZi8RRlLymUADX0jBIMf8F0cIC8FCj3R4EMR33Q==} + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.169739a': + resolution: {integrity: sha512-Z+YsQL+nfO5FlyfODuMtA0ZUimP7FVTSgMCn8OwjYngesuUxnH1+FVlOpyGuQI0N85K/sKeF6bViyuRGzfFUFw==} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.170d158': - resolution: {integrity: sha512-VZKAtNrBZsPFpNVch9RpAAQfknILRcJkr1TalwfEXdGsnzubgVJZrPq0qtOyiCJam33sqEwzWzO6E53xyQVZJg==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.169739a': + resolution: {integrity: sha512-eEMyCXjlcjhrQUKR6El2nNEYMRg756G+VM9TA67VGLRKdEXShscBfd8dE66cZPiTBdp4Q87Veb4p5pxO1HsrAA==} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.170d158': - resolution: {integrity: sha512-QwPYwoYPVogCibUWeKgHpnm/GFVvpuJ+rTCs1NooLDFXxxkLdCGUo5a/84PEd6DBiLhF91Tmil4JWZrtkUg/wA==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.169739a': + resolution: {integrity: sha512-i0ohHJ1CLCaVo8b1uHtGV1PfVUIPQXMSj4QWMt/dowNMY44c3HJ+ntbIpe2LAatfETlCuE/ZZ+yd+Gd7zsGEDw==} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.170d158': - resolution: {integrity: sha512-bmfTte+6+f7aJG3EMCnJzJ4xjobsObsM6GvSpElFfm+wLak6mMnyPESYkuX6uljTWn0l4sIpYU/9/BZfM8FDVw==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.169739a': + resolution: {integrity: sha512-qfSswSziPE6CuFH3oZomJUhGP4ClWsC+4f6MOkz9m7kpUAwFyBBt33pob9LPBr+PsTIAIvqiw7oEsU5i7gA9fw==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.170d158': - resolution: {integrity: sha512-vTr3CIwAHKSZRv7qkGxEDZge/0JF6A+mGQoaBacRTPcrKY1is99TQwrLoHm/W2rRORsZ/6duf6MhPMka8hg0sA==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.169739a': + resolution: {integrity: sha512-mjIbxq3fHDSICAG3xp3kfbBQo3/tXvvsGkJ2/9MTAHW2Gkn1Swy23MTCnCchzMLrHTt9tIp/UD1FLvrmb/dxcA==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.170d158': - resolution: {integrity: sha512-Nvvmt/sjd/Ob/qM4B5o9lkUKxOmP7UnoOO/99Dp6rEwQor+8lc6oeJDWChi8HUkF/OXeVhSKkpU3L+hRkBsdwQ==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.169739a': + resolution: {integrity: sha512-KacLZM+maqCNCcov4YpkDRl1RJm7Kb66ciJTcjxdkEzf2gOj2KsqJRdgtS2A+WlRgwjWGsNAos+Ouez55qxzpg==} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.170d158': - resolution: {integrity: sha512-tW3ajcRsKpscdla/x5Y/nVfyjXmEtQV3/xOYDoNA3mNb9zdehWxf2Lb5h4hvo0k7bI9NcLVziph5vLRr5n5QIQ==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.169739a': + resolution: {integrity: sha512-H+XifeoLcoeyu6DX3gUIIzzDCdV4T7DQDLPjkX2zdiBUG7c755j554Q7YkGJaXD1ijK0n9stDHfyIk9Mnc6n5A==} cpu: [x64] os: [linux] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.170d158': - resolution: {integrity: sha512-MA0NtZyqDRZ4ZsKDHOM/NFZ3Qr0/UyVbQJQP3vfBPCAb1FDdDjcgFz6N7PrKKkd9XWfm3lVkyjy9vOhzYmFRBQ==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.169739a': + resolution: {integrity: sha512-+AT+i0JTwXCrY2HUrs75GWbp72NMJhkEcUZ8xgJG/iaB+C5H9acw05OP2+5CGVY6XlzojgKrtLIX+3QM2+iJGw==} engines: {node: '>=14.21.3'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.170d158': - resolution: {integrity: sha512-o2K46Obh/R46ECRmn0KOWX6+nF2M5Zkg9X7L4P55dqK4zJ2JBdhUDeYSaiY+QhmQcAhJgXfU2jKJGD4IMdRO5Q==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.169739a': + resolution: {integrity: sha512-0QlwMpR16RwFDjIr3DC8y6Bcp/FpHL1m/RG1JdhoakcMWxwCNghZzcTuZkjIJTtyMlqCUCUQ29vTVYQcv2Fj+g==} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.170d158': - resolution: {integrity: sha512-pZDsbhSTD+mOgjHgjAv+no9gZf5XV5qMyoC01QeeDozUjuhTTrd0oU2QL5RYYBb7Ub7hwl99Lr8zU9vX/s7KYw==} + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.169739a': + resolution: {integrity: sha512-n/SqYlbH4JzL6FFxn4guNJp7wtrw0vdlKDKpo3jdMOApXihfuQ+ttJ0gE1PdKvGcCnwJ/Bv8FX2showTuVjJzA==} cpu: [ia32] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.170d158': - resolution: {integrity: sha512-1RZ7BCb9BbIurmdNwHkwQusUSYgp1lHzO/kbkzH13Zr/H6v+RXrCxqqMzddzuCXqlAFg8jRyaJVqoUBuWOAa5Q==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.169739a': + resolution: {integrity: sha512-PEN59fBrvhJm9aSjZP9NPoYLAU+C1Jry/60tQzs/Nj908DAxM6FQ5FfHLhBzoNPnDfCsoouCUlgGDGbbmHzQpA==} cpu: [x64] os: [win32] @@ -6761,8 +6761,8 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.7-commit.170d158: - resolution: {integrity: sha512-BXeXCVWQW5tQYSqxITC5cWvEfyqZVbustA6OHXRlC0mbob03PI+kfk/2OMi4wd1gev9o9jbe1eKxl/lG0aa87A==} + rolldown@1.0.0-beta.7-commit.169739a: + resolution: {integrity: sha512-mN3mFyFEaGBvB0c1HFV1u7GxT1gtg9ZffTqYEhaJOe71hUFpTsMEA1b66evf110bVj95zoPw5bunoGVJlGpXmw==} hasBin: true peerDependencies: '@oxc-project/runtime': 0.63.0 @@ -9015,42 +9015,42 @@ snapshots: '@publint/pack@0.1.1': {} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.170d158': + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.169739a': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.170d158': + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.169739a': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.170d158': + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.169739a': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.170d158': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.169739a': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.170d158': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.169739a': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.170d158': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.169739a': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.170d158': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.169739a': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.170d158': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.169739a': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.170d158': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.169739a': dependencies: '@napi-rs/wasm-runtime': 0.2.7 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.170d158': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.169739a': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.170d158': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.169739a': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.170d158': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.169739a': optional: true '@rollup/plugin-alias@5.1.1(rollup@4.34.9)': @@ -13025,25 +13025,25 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.7-commit.170d158(@oxc-project/runtime@0.63.0)(typescript@5.7.3): + rolldown@1.0.0-beta.7-commit.169739a(@oxc-project/runtime@0.63.0)(typescript@5.7.3): dependencies: '@oxc-project/types': 0.63.0 '@valibot/to-json-schema': 1.0.0(valibot@1.0.0(typescript@5.7.3)) valibot: 1.0.0(typescript@5.7.3) optionalDependencies: '@oxc-project/runtime': 0.63.0 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.170d158 - '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.170d158 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.170d158 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.170d158 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.170d158 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.170d158 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.170d158 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.170d158 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.170d158 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.170d158 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.170d158 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.170d158 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.169739a + '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.169739a + '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.169739a + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.169739a + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.169739a + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.169739a + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.169739a + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.169739a + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.169739a + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.169739a + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.169739a + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.169739a transitivePeerDependencies: - typescript From 892cf3470b30346ad077395ee712d7a10d5901bf Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Tue, 15 Apr 2025 06:56:21 +0200 Subject: [PATCH 058/102] chore: oxc esbuild option warning message grammar (#112) --- packages/vite/src/node/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index f20a9c32afd43b..aadfcca6696c2e 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -1616,7 +1616,7 @@ export async function resolveConfig( if (config.oxc) { logger.warn( colors.yellow( - `Both esbuild and oxc options were set, oxc options would be used and esbuild options would be ignored.`, + `Both esbuild and oxc options were set. oxc options will be used and esbuild options will be ignored.`, ), ) } else { From 4392a9af36c29a9e04704c475ffda2c98d12e191 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Tue, 15 Apr 2025 14:01:18 +0900 Subject: [PATCH 059/102] release: v6.3.0-beta.8 --- packages/vite/CHANGELOG.md | 8 ++++++++ packages/vite/package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index 4bc96976f8a4cf..e207cbc2b1db38 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,11 @@ +## 6.3.0-beta.8 (2025-04-15) + +* chore: oxc esbuild option warning message grammar (#112) ([892cf34](https://github.com/vitejs/rolldown-vite/commit/892cf34)), closes [#112](https://github.com/vitejs/rolldown-vite/issues/112) +* feat: update rolldown ([e996d54](https://github.com/vitejs/rolldown-vite/commit/e996d54)) +* fix: update oxc esbuild option warning message (#111) ([aa29797](https://github.com/vitejs/rolldown-vite/commit/aa29797)), closes [#111](https://github.com/vitejs/rolldown-vite/issues/111) + + + ## 6.3.0-beta.7 (2025-04-12) * feat(optimizer): improve esbuild plugin conversion compat (#110) ([6ec06b6](https://github.com/vitejs/rolldown-vite/commit/6ec06b6)), closes [#110](https://github.com/vitejs/rolldown-vite/issues/110) diff --git a/packages/vite/package.json b/packages/vite/package.json index f99b2b14f801d7..0db39776accb51 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "rolldown-vite", - "version": "6.3.0-beta.7", + "version": "6.3.0-beta.8", "type": "module", "license": "MIT", "author": "Evan You", From 732a8e4867e1646fdfd78948bc3f8fcd5864945a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Wed, 16 Apr 2025 14:58:05 +0900 Subject: [PATCH 060/102] fix(optimizer): include rollupOptions in config hash (#115) --- packages/vite/src/node/baseEnvironment.ts | 1 + packages/vite/src/node/config.ts | 24 +++++++++++++++++++++++ packages/vite/src/node/optimizer/index.ts | 14 ++++++++++--- packages/vite/src/node/plugins/index.ts | 4 +++- 4 files changed, 39 insertions(+), 4 deletions(-) diff --git a/packages/vite/src/node/baseEnvironment.ts b/packages/vite/src/node/baseEnvironment.ts index 4363fb4c5e9fe6..359eaf8d805037 100644 --- a/packages/vite/src/node/baseEnvironment.ts +++ b/packages/vite/src/node/baseEnvironment.ts @@ -20,6 +20,7 @@ export function getDefaultResolvedEnvironmentOptions( optimizeDeps: config.optimizeDeps, dev: config.dev, build: config.build, + optimizeDepsPluginNames: [], } } diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index aadfcca6696c2e..79c61699c1149c 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -289,6 +289,8 @@ export type ResolvedEnvironmentOptions = { optimizeDeps: DepOptimizationOptions dev: ResolvedDevEnvironmentOptions build: ResolvedBuildEnvironmentOptions + /** @internal */ + optimizeDepsPluginNames: string[] } export type DefaultEnvironmentOptions = Omit< @@ -862,6 +864,8 @@ function resolveEnvironmentOptions( logger, consumer, ), + // will be set by `setOptimizeDepsPluginNames` later + optimizeDepsPluginNames: undefined!, } } @@ -1188,6 +1192,25 @@ function resolveDepOptimizationOptions( ) } +async function setOptimizeDepsPluginNames(resolvedConfig: ResolvedConfig) { + await Promise.all( + Object.values(resolvedConfig.environments).map(async (environment) => { + const plugins = environment.optimizeDeps.rollupOptions?.plugins ?? [] + const outputPlugins = + environment.optimizeDeps.rollupOptions?.output?.plugins ?? [] + const flattenedPlugins = await asyncFlatten([plugins, outputPlugins]) + + const pluginNames = [] + for (const plugin of flattenedPlugins) { + if (plugin && 'name' in plugin) { + pluginNames.push(plugin.name) + } + } + environment.optimizeDepsPluginNames = pluginNames + }), + ) +} + function applyDepOptimizationOptionCompat(resolvedConfig: ResolvedConfig) { if ( resolvedConfig.optimizeDeps.esbuildOptions?.plugins && @@ -1798,6 +1821,7 @@ export async function resolveConfig( } applyDepOptimizationOptionCompat(resolved) + await setOptimizeDepsPluginNames(resolved) debug?.(`using resolved config: %O`, { ...resolved, diff --git a/packages/vite/src/node/optimizer/index.ts b/packages/vite/src/node/optimizer/index.ts index 4a4ceb555acb0e..b680cb97067269 100644 --- a/packages/vite/src/node/optimizer/index.ts +++ b/packages/vite/src/node/optimizer/index.ts @@ -1237,11 +1237,19 @@ function getConfigHash(environment: Environment): string { exclude: optimizeDeps.exclude ? unique(optimizeDeps.exclude).sort() : undefined, - esbuildOptions: { - ...optimizeDeps.esbuildOptions, - plugins: optimizeDeps.esbuildOptions?.plugins?.map((p) => p.name), + rollupOptions: { + ...optimizeDeps.rollupOptions, + plugins: undefined, // included in optimizeDepsPluginNames + onLog: undefined, + onwarn: undefined, + checks: undefined, + output: { + ...optimizeDeps.rollupOptions?.output, + plugins: undefined, // included in optimizeDepsPluginNames + }, }, }, + optimizeDepsPluginNames: config.optimizeDepsPluginNames, }, (_, value) => { if (typeof value === 'function' || value instanceof RegExp) { diff --git a/packages/vite/src/node/plugins/index.ts b/packages/vite/src/node/plugins/index.ts index 712e1292d2d481..15274a229fa237 100644 --- a/packages/vite/src/node/plugins/index.ts +++ b/packages/vite/src/node/plugins/index.ts @@ -104,7 +104,9 @@ export async function resolvePlugins( optimizeDeps: true, externalize: true, }, - isWorker ? { ...config, consumer: 'client' } : undefined, + isWorker + ? { ...config, consumer: 'client', optimizeDepsPluginNames: [] } + : undefined, ) : [ resolvePlugin({ From bf2b4416f7cbf8c154e7bb07bf7472ca6714c183 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Wed, 16 Apr 2025 14:58:10 +0900 Subject: [PATCH 061/102] fix(native-plugin): disable optimizerResolvePlugin correctly (#116) --- packages/vite/src/node/plugins/resolve.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/node/plugins/resolve.ts b/packages/vite/src/node/plugins/resolve.ts index 0b13e90acbd58b..dffec6d9dc04a5 100644 --- a/packages/vite/src/node/plugins/resolve.ts +++ b/packages/vite/src/node/plugins/resolve.ts @@ -204,7 +204,9 @@ export function oxcResolvePlugin( overrideEnvConfig: (ResolvedConfig & ResolvedEnvironmentOptions) | undefined, ): Plugin[] { return [ - optimizerResolvePlugin(resolveOptions), + ...(!resolveOptions.isBuild + ? [optimizerResolvePlugin(resolveOptions)] + : []), importGlobSubpathImportsResolvePlugin(resolveOptions), perEnvironmentOrWorkerPlugin( 'vite:resolve-builtin', @@ -324,7 +326,6 @@ function optimizerResolvePlugin( return { name: 'vite:resolve-dev', - apply: 'serve', resolveId: { filter: { id: { From 7b0adeeb4cb9b5f9d463146483cbfb3d733f5e71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Wed, 16 Apr 2025 18:28:47 +0900 Subject: [PATCH 062/102] chore: update links in README (#92) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7cf5773ffd8dd9..da52a8b4ee7e3c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- + Vite logo Rolldown logo @@ -22,7 +22,7 @@ It can be used as a drop-in replacement to test out Rolldown with Vite. Eventually, this package is not needed anymore as all changes will be merged into the main Vite repository. -[Read the Docs to Learn More](https://main.vite.dev/guide/rolldown.html). +[Read the Docs to Learn More](https://vite.dev/guide/rolldown.html). ## License From f2d0354b02881f35e97b95fcf7328ddb597e3b64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Thu, 17 Apr 2025 13:12:35 +0900 Subject: [PATCH 063/102] feat: reexport `withFilter` from rolldown (#122) --- packages/vite/src/node/publicUtils.ts | 1 + packages/vite/src/node/utils.ts | 2 ++ 2 files changed, 3 insertions(+) diff --git a/packages/vite/src/node/publicUtils.ts b/packages/vite/src/node/publicUtils.ts index 132bd79d421f00..93e8d780d597f1 100644 --- a/packages/vite/src/node/publicUtils.ts +++ b/packages/vite/src/node/publicUtils.ts @@ -23,6 +23,7 @@ export { mergeConfig, mergeAlias, createFilter, + withFilter, rollupVersion, rolldownVersion, } from './utils' diff --git a/packages/vite/src/node/utils.ts b/packages/vite/src/node/utils.ts index b2fe902136db7b..d82af098009655 100644 --- a/packages/vite/src/node/utils.ts +++ b/packages/vite/src/node/utils.ts @@ -64,6 +64,8 @@ export const createFilter = _createFilter as ( options?: { resolve?: string | false | null }, ) => (id: string | unknown) => boolean +export { withFilter } from 'rolldown' + const replaceSlashOrColonRE = /[/:]/g const replaceDotRE = /\./g const replaceNestedIdRE = /\s*>\s*/g From 752d7f646cb16f9731b8bc9592dd539bbfc9bf86 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Thu, 17 Apr 2025 13:20:54 +0900 Subject: [PATCH 064/102] feat: update rolldown --- packages/vite/package.json | 2 +- pnpm-lock.yaml | 113 ++++++++++++++++++++----------------- 2 files changed, 61 insertions(+), 54 deletions(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index 0db39776accb51..eb0831db9ade43 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -90,7 +90,7 @@ "lightningcss": "^1.29.3", "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rolldown": "1.0.0-beta.7-commit.169739a", + "rolldown": "1.0.0-beta.7-commit.cef50bd", "tinyglobby": "^0.2.12" }, "optionalDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 065cfe5fb8bad2..9ee9518a5aff66 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -242,8 +242,8 @@ importers: specifier: ^8.5.3 version: 8.5.3 rolldown: - specifier: 1.0.0-beta.7-commit.169739a - version: 1.0.0-beta.7-commit.169739a(@oxc-project/runtime@0.63.0)(typescript@5.7.3) + specifier: 1.0.0-beta.7-commit.cef50bd + version: 1.0.0-beta.7-commit.cef50bd(@oxc-project/runtime@0.63.0)(typescript@5.7.3) tinyglobby: specifier: ^0.2.12 version: 0.2.12 @@ -2931,63 +2931,63 @@ packages: resolution: {integrity: sha512-TvCl79Y8v18ZhFGd5mjO1kYPovSBq3+4LVCi5Nfl1JI8fS8i8kXbgQFGwBJRXczim8GlW8c2LMBKTtExYXOy/A==} engines: {node: '>=18'} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.169739a': - resolution: {integrity: sha512-sHgtO+itmn+7VMExgP94VQiODaB3y1QnXSKjJaBsWhB1dd7Kva6RlzHjcaZicP52qs++350yzuFvDqn7zktVMA==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.cef50bd': + resolution: {integrity: sha512-FM94kS5l7lnX2NasgEV9FS8IwBVVsaor/rgNejiS8cvV5IfaFSwwoC3npMuHz/+JeC4QeRFpqHiBZ9ywTiunTQ==} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.169739a': - resolution: {integrity: sha512-Z+YsQL+nfO5FlyfODuMtA0ZUimP7FVTSgMCn8OwjYngesuUxnH1+FVlOpyGuQI0N85K/sKeF6bViyuRGzfFUFw==} + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.cef50bd': + resolution: {integrity: sha512-tlPpX5rPZNQHvob/zypa3KGDCygfDUGASGfMMuxQXUGyRRe6K6SmII1Kb04zdOFnI2qLdXInko8+Vqp6nYSo7A==} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.169739a': - resolution: {integrity: sha512-eEMyCXjlcjhrQUKR6El2nNEYMRg756G+VM9TA67VGLRKdEXShscBfd8dE66cZPiTBdp4Q87Veb4p5pxO1HsrAA==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.cef50bd': + resolution: {integrity: sha512-hvgob74o25Z/F6Oxwdib/EouArhZlwkdjg2luy/KvdP+FZqfTi8kXBP6ICKG/NaGjPgtvyW2sIebhAKJiJzksQ==} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.169739a': - resolution: {integrity: sha512-i0ohHJ1CLCaVo8b1uHtGV1PfVUIPQXMSj4QWMt/dowNMY44c3HJ+ntbIpe2LAatfETlCuE/ZZ+yd+Gd7zsGEDw==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.cef50bd': + resolution: {integrity: sha512-tvplXhZo001wRXeZjhW2jeZyI5Ot9DW5APhT9vhAPb+1AngJ/WURxz6hLJ4upFMWNovVDK5SEOIDnUsrWPqCMQ==} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.169739a': - resolution: {integrity: sha512-qfSswSziPE6CuFH3oZomJUhGP4ClWsC+4f6MOkz9m7kpUAwFyBBt33pob9LPBr+PsTIAIvqiw7oEsU5i7gA9fw==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.cef50bd': + resolution: {integrity: sha512-DeeHtd7Ov6pHsAR86kKHjbp0YnOV8MK+goY//1N906aQ4H3QLI6fRLvXTf27nJ7wkGWebmPyg4I197OgSOBwog==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.169739a': - resolution: {integrity: sha512-mjIbxq3fHDSICAG3xp3kfbBQo3/tXvvsGkJ2/9MTAHW2Gkn1Swy23MTCnCchzMLrHTt9tIp/UD1FLvrmb/dxcA==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.cef50bd': + resolution: {integrity: sha512-kXr6gNzeH5E6yiJHja9gzuoW2WLQqJBsx1JKUG1ZCXJ1CCJTK0t4W7yEFEM3xJqmn1Bfg0+OFfFCgEXNfwnXgg==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.169739a': - resolution: {integrity: sha512-KacLZM+maqCNCcov4YpkDRl1RJm7Kb66ciJTcjxdkEzf2gOj2KsqJRdgtS2A+WlRgwjWGsNAos+Ouez55qxzpg==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.cef50bd': + resolution: {integrity: sha512-0Q108sH3Yq53XkUOJAIqQzuIhOFeZnsasj595w0AOw3AKiJGfCGog4MOGmZvTLnX3+bN57hkju42C4hb9W35lA==} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.169739a': - resolution: {integrity: sha512-H+XifeoLcoeyu6DX3gUIIzzDCdV4T7DQDLPjkX2zdiBUG7c755j554Q7YkGJaXD1ijK0n9stDHfyIk9Mnc6n5A==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.cef50bd': + resolution: {integrity: sha512-lxCZmM5GNP0WlpBX5lTzTtPwhaGygt1nZEGLHMWoyqPRMAE0/XQqL0Bp47cXE3xLRvG27b+N+OYQ/MzBcfHSxw==} cpu: [x64] os: [linux] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.169739a': - resolution: {integrity: sha512-+AT+i0JTwXCrY2HUrs75GWbp72NMJhkEcUZ8xgJG/iaB+C5H9acw05OP2+5CGVY6XlzojgKrtLIX+3QM2+iJGw==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.cef50bd': + resolution: {integrity: sha512-mqDq9JTFr2ogrG9BpP/f1+P0bN41Ks+p14/rAXV8QXui96DDZS2nzDC0xmOXHA+PXxLJCzRfBS4YeK9TIeIpvA==} engines: {node: '>=14.21.3'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.169739a': - resolution: {integrity: sha512-0QlwMpR16RwFDjIr3DC8y6Bcp/FpHL1m/RG1JdhoakcMWxwCNghZzcTuZkjIJTtyMlqCUCUQ29vTVYQcv2Fj+g==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.cef50bd': + resolution: {integrity: sha512-ZI4zVh3E2ajPnr3F1yXF3MaRXfKD3XHS2Np2p6iARj0c8Zg8wPFC79H6to+TdMcZjOd5wTVLfDBLROKSAUsyLQ==} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.169739a': - resolution: {integrity: sha512-n/SqYlbH4JzL6FFxn4guNJp7wtrw0vdlKDKpo3jdMOApXihfuQ+ttJ0gE1PdKvGcCnwJ/Bv8FX2showTuVjJzA==} + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.cef50bd': + resolution: {integrity: sha512-GElieXz2KDmo7UzvOOlY/EdPm+161kxVdFc8/F/AjZZlObKzPvOpBuleZNcnD+fBcZx23kxyARY63hW4MAoCcw==} cpu: [ia32] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.169739a': - resolution: {integrity: sha512-PEN59fBrvhJm9aSjZP9NPoYLAU+C1Jry/60tQzs/Nj908DAxM6FQ5FfHLhBzoNPnDfCsoouCUlgGDGbbmHzQpA==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.cef50bd': + resolution: {integrity: sha512-WWZHGk1iJt1bOtUFFmap8S5Vt2HJ0JwAj3u1XKec27nspYXEhyIQMnLCT3Mhnl37oC/gzFZ2eGLlfbc2F9Mwtg==} cpu: [x64] os: [win32] @@ -4055,6 +4055,10 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + ansis@3.17.0: + resolution: {integrity: sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==} + engines: {node: '>=14'} + any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} @@ -6761,8 +6765,8 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.7-commit.169739a: - resolution: {integrity: sha512-mN3mFyFEaGBvB0c1HFV1u7GxT1gtg9ZffTqYEhaJOe71hUFpTsMEA1b66evf110bVj95zoPw5bunoGVJlGpXmw==} + rolldown@1.0.0-beta.7-commit.cef50bd: + resolution: {integrity: sha512-hGsUqljJ0jeBkgVM3qXvLlE6y5y/Ob6d1assxaCOSgzTuGMNuER8Of1E4OTI3Ssy5mW2aTrGRK1D/a/KP1q/Ww==} hasBin: true peerDependencies: '@oxc-project/runtime': 0.63.0 @@ -9015,42 +9019,42 @@ snapshots: '@publint/pack@0.1.1': {} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.169739a': + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.cef50bd': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.169739a': + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.cef50bd': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.169739a': + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.cef50bd': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.169739a': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.cef50bd': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.169739a': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.cef50bd': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.169739a': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.cef50bd': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.169739a': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.cef50bd': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.169739a': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.cef50bd': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.169739a': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.cef50bd': dependencies: '@napi-rs/wasm-runtime': 0.2.7 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.169739a': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.cef50bd': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.169739a': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.cef50bd': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.169739a': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.cef50bd': optional: true '@rollup/plugin-alias@5.1.1(rollup@4.34.9)': @@ -10127,6 +10131,8 @@ snapshots: ansi-styles@6.2.1: {} + ansis@3.17.0: {} + any-promise@1.3.0: {} anymatch@3.1.3: @@ -13025,25 +13031,26 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.7-commit.169739a(@oxc-project/runtime@0.63.0)(typescript@5.7.3): + rolldown@1.0.0-beta.7-commit.cef50bd(@oxc-project/runtime@0.63.0)(typescript@5.7.3): dependencies: '@oxc-project/types': 0.63.0 '@valibot/to-json-schema': 1.0.0(valibot@1.0.0(typescript@5.7.3)) + ansis: 3.17.0 valibot: 1.0.0(typescript@5.7.3) optionalDependencies: '@oxc-project/runtime': 0.63.0 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.169739a - '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.169739a - '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.169739a - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.169739a - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.169739a - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.169739a - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.169739a - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.169739a - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.169739a - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.169739a - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.169739a - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.169739a + '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.cef50bd + '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.cef50bd + '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.cef50bd + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.cef50bd + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.cef50bd + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.cef50bd + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.cef50bd + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.cef50bd + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.cef50bd + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.cef50bd + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.cef50bd + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.cef50bd transitivePeerDependencies: - typescript From 4aabb0791f788581ea0736ebee7faeb07f46a0e5 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Thu, 17 Apr 2025 13:34:30 +0900 Subject: [PATCH 065/102] release: v6.3.0 --- packages/create-vite/template-lit-ts/package.json | 2 +- packages/create-vite/template-lit/package.json | 2 +- .../create-vite/template-preact-ts/package.json | 2 +- packages/create-vite/template-preact/package.json | 2 +- packages/create-vite/template-qwik-ts/package.json | 2 +- packages/create-vite/template-qwik/package.json | 2 +- .../create-vite/template-react-ts/package.json | 2 +- packages/create-vite/template-react/package.json | 2 +- .../create-vite/template-solid-ts/package.json | 2 +- packages/create-vite/template-solid/package.json | 2 +- .../create-vite/template-svelte-ts/package.json | 2 +- packages/create-vite/template-svelte/package.json | 2 +- .../create-vite/template-vanilla-ts/package.json | 2 +- packages/create-vite/template-vanilla/package.json | 2 +- packages/create-vite/template-vue-ts/package.json | 2 +- packages/create-vite/template-vue/package.json | 2 +- packages/vite/CHANGELOG.md | 14 ++++++++++++++ packages/vite/package.json | 2 +- 18 files changed, 31 insertions(+), 17 deletions(-) diff --git a/packages/create-vite/template-lit-ts/package.json b/packages/create-vite/template-lit-ts/package.json index dc5f6178df71ff..9a1f081ae2b106 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": "npm:rolldown-vite@^6.3.0-beta.1" + "vite": "npm:rolldown-vite@^6.3.0" } } diff --git a/packages/create-vite/template-lit/package.json b/packages/create-vite/template-lit/package.json index da567402ca9517..a7caaa60b2b875 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": "npm:rolldown-vite@^6.3.0-beta.1" + "vite": "npm:rolldown-vite@^6.3.0" } } diff --git a/packages/create-vite/template-preact-ts/package.json b/packages/create-vite/template-preact-ts/package.json index 2a918fc3d5e0b5..88925164e75dc2 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": "npm:rolldown-vite@^6.3.0-beta.1" + "vite": "npm:rolldown-vite@^6.3.0" } } diff --git a/packages/create-vite/template-preact/package.json b/packages/create-vite/template-preact/package.json index b01d0f6cc72e93..c633c1f00dd232 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": "npm:rolldown-vite@^6.3.0-beta.1" + "vite": "npm:rolldown-vite@^6.3.0" } } diff --git a/packages/create-vite/template-qwik-ts/package.json b/packages/create-vite/template-qwik-ts/package.json index 9ebb3f5eecdfb3..24387d47e24faa 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": "npm:rolldown-vite@^6.3.0-beta.1" + "vite": "npm:rolldown-vite@^6.3.0" }, "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 df6a96ba917b62..6efa321835c2e1 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": "npm:rolldown-vite@^6.3.0-beta.1" + "vite": "npm:rolldown-vite@^6.3.0" }, "dependencies": { "@builder.io/qwik": "^1.12.1" diff --git a/packages/create-vite/template-react-ts/package.json b/packages/create-vite/template-react-ts/package.json index cf45d813c397b0..d744d23d007019 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": "npm:rolldown-vite@^6.3.0-beta.1" + "vite": "npm:rolldown-vite@^6.3.0" } } diff --git a/packages/create-vite/template-react/package.json b/packages/create-vite/template-react/package.json index 53b97246bbd466..68b86467999589 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": "npm:rolldown-vite@^6.3.0-beta.1" + "vite": "npm:rolldown-vite@^6.3.0" } } diff --git a/packages/create-vite/template-solid-ts/package.json b/packages/create-vite/template-solid-ts/package.json index 091cdc7d2c6335..5f06a23390bcd4 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": "npm:rolldown-vite@^6.3.0-beta.1", + "vite": "npm:rolldown-vite@^6.3.0", "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 e32d425573a5ab..f2a56b77116394 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": "npm:rolldown-vite@^6.3.0-beta.1", + "vite": "npm:rolldown-vite@^6.3.0", "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 88aad128684a66..bf5f312cbcb0d4 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": "npm:rolldown-vite@^6.3.0-beta.1" + "vite": "npm:rolldown-vite@^6.3.0" } } diff --git a/packages/create-vite/template-svelte/package.json b/packages/create-vite/template-svelte/package.json index 12c186d75b1683..4fb9267e3e3202 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": "npm:rolldown-vite@^6.3.0-beta.1" + "vite": "npm:rolldown-vite@^6.3.0" } } diff --git a/packages/create-vite/template-vanilla-ts/package.json b/packages/create-vite/template-vanilla-ts/package.json index 8535eddb3554d4..d8c130a1f41089 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": "npm:rolldown-vite@^6.3.0-beta.1" + "vite": "npm:rolldown-vite@^6.3.0" } } diff --git a/packages/create-vite/template-vanilla/package.json b/packages/create-vite/template-vanilla/package.json index 164f42b5dc97ea..5693a15b0c0234 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": "npm:rolldown-vite@^6.3.0-beta.1" + "vite": "npm:rolldown-vite@^6.3.0" } } diff --git a/packages/create-vite/template-vue-ts/package.json b/packages/create-vite/template-vue-ts/package.json index a34e26b59a5118..61fe5ff8721ae6 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": "npm:rolldown-vite@^6.3.0-beta.1", + "vite": "npm:rolldown-vite@^6.3.0", "vue-tsc": "^2.2.8" } } diff --git a/packages/create-vite/template-vue/package.json b/packages/create-vite/template-vue/package.json index 1567fe2e5aed29..2d7e0fd70ecdf4 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": "npm:rolldown-vite@^6.3.0-beta.1" + "vite": "npm:rolldown-vite@^6.3.0" } } diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index e207cbc2b1db38..ec38820c70f8a4 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,17 @@ +## 6.3.0 (2025-04-17) + +* feat: reexport `withFilter` from rolldown (#122) ([f2d0354](https://github.com/vitejs/rolldown-vite/commit/f2d0354)), closes [#122](https://github.com/vitejs/rolldown-vite/issues/122) +* feat: update rolldown ([752d7f6](https://github.com/vitejs/rolldown-vite/commit/752d7f6)) +* release: v6.3.0 ([5fdcfe7](https://github.com/vitejs/rolldown-vite/commit/5fdcfe7)) +* release: v6.3.1 ([a7349ef](https://github.com/vitejs/rolldown-vite/commit/a7349ef)) +* fix: avoid using `Promise.allSettled` in preload function (#19805) ([35c7f35](https://github.com/vitejs/rolldown-vite/commit/35c7f35)), closes [#19805](https://github.com/vitejs/rolldown-vite/issues/19805) +* fix: backward compat for internal plugin `transform` calls (#19878) ([a152b7c](https://github.com/vitejs/rolldown-vite/commit/a152b7c)), closes [#19878](https://github.com/vitejs/rolldown-vite/issues/19878) +* fix(hmr): avoid infinite loop happening with `hot.invalidate` in circular deps (#19870) ([d4ee5e8](https://github.com/vitejs/rolldown-vite/commit/d4ee5e8)), closes [#19870](https://github.com/vitejs/rolldown-vite/issues/19870) +* fix(native-plugin): disable optimizerResolvePlugin correctly (#116) ([bf2b441](https://github.com/vitejs/rolldown-vite/commit/bf2b441)), closes [#116](https://github.com/vitejs/rolldown-vite/issues/116) +* fix(optimizer): include rollupOptions in config hash (#115) ([732a8e4](https://github.com/vitejs/rolldown-vite/commit/732a8e4)), closes [#115](https://github.com/vitejs/rolldown-vite/issues/115) + + + ## 6.3.0-beta.8 (2025-04-15) * chore: oxc esbuild option warning message grammar (#112) ([892cf34](https://github.com/vitejs/rolldown-vite/commit/892cf34)), closes [#112](https://github.com/vitejs/rolldown-vite/issues/112) diff --git a/packages/vite/package.json b/packages/vite/package.json index eb0831db9ade43..496aa8aeb2025c 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "rolldown-vite", - "version": "6.3.0-beta.8", + "version": "6.3.0", "type": "module", "license": "MIT", "author": "Evan You", From 4c2f7db159b6f4986036978d0a9d5844c1618f1e Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Fri, 18 Apr 2025 13:55:47 +0900 Subject: [PATCH 066/102] feat: update rolldown --- packages/vite/package.json | 6 +- pnpm-lock.yaml | 132 ++++++++++++++++++------------------- 2 files changed, 69 insertions(+), 69 deletions(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index f0f7e16ee99abd..54e19de759ed90 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -85,12 +85,12 @@ }, "//": "READ CONTRIBUTING.md to understand what to put under deps vs. devDeps!", "dependencies": { - "@oxc-project/runtime": "0.63.0", + "@oxc-project/runtime": "0.64.0", "fdir": "^6.4.3", "lightningcss": "^1.29.3", "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rolldown": "1.0.0-beta.7-commit.cef50bd", + "rolldown": "1.0.0-beta.7-commit.a7cf9ac", "tinyglobby": "^0.2.12" }, "optionalDependencies": { @@ -100,7 +100,7 @@ "@ampproject/remapping": "^2.3.0", "@babel/parser": "^7.27.0", "@jridgewell/trace-mapping": "^0.3.25", - "@oxc-project/types": "0.63.0", + "@oxc-project/types": "0.64.0", "@polka/compression": "^1.0.0-next.25", "@rollup/plugin-alias": "^5.1.1", "@rollup/plugin-commonjs": "^28.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ce6f4b489f5603..16f8b94e6bef55 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -224,8 +224,8 @@ importers: packages/vite: dependencies: '@oxc-project/runtime': - specifier: 0.63.0 - version: 0.63.0 + specifier: 0.64.0 + version: 0.64.0 fdir: specifier: ^6.4.3 version: 6.4.3(picomatch@4.0.2) @@ -239,8 +239,8 @@ importers: specifier: ^8.5.3 version: 8.5.3 rolldown: - specifier: 1.0.0-beta.7-commit.cef50bd - version: 1.0.0-beta.7-commit.cef50bd(@oxc-project/runtime@0.63.0)(typescript@5.7.3) + specifier: 1.0.0-beta.7-commit.a7cf9ac + version: 1.0.0-beta.7-commit.a7cf9ac(@oxc-project/runtime@0.64.0)(typescript@5.7.3) tinyglobby: specifier: ^0.2.12 version: 0.2.12 @@ -255,8 +255,8 @@ importers: specifier: ^0.3.25 version: 0.3.25 '@oxc-project/types': - specifier: 0.63.0 - version: 0.63.0 + specifier: 0.64.0 + version: 0.64.0 '@polka/compression': specifier: ^1.0.0-next.25 version: 1.0.0-next.25 @@ -2834,12 +2834,12 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@oxc-project/runtime@0.63.0': - resolution: {integrity: sha512-u7mno3YgPu6G8gfXQyHcsKWtCacl4w6lKxy6LMXsNsqCcMf3k2zfVW9oV7z83oOLVIJ5fmBbvjqubT4X5ScGGg==} + '@oxc-project/runtime@0.64.0': + resolution: {integrity: sha512-OTrPmipjz8J5w2SdXEi6JUrMITqIopAn7xKCbmfsNEGfOiWDShisSC9fcIKEuKfceUjF9hiAwUc83q+BLhbnDw==} engines: {node: '>=6.9.0'} - '@oxc-project/types@0.63.0': - resolution: {integrity: sha512-2tIGBdm0mOMMo3AUVdXyZUORDbWTnt4XVOKeNdcPtxtb39SgyF/ek2QV7DJ9BAV5TWYYis6BuY5SqrAp+PHRgQ==} + '@oxc-project/types@0.64.0': + resolution: {integrity: sha512-B0dxuEZFV6M4tXjPFwDSaED5/J55YUhODBaF09xNFNRrEyzQLKZuhKXAw1xYK8bO4K8Jn1d21TZfei3kAIE8dA==} '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} @@ -2942,63 +2942,63 @@ packages: resolution: {integrity: sha512-TvCl79Y8v18ZhFGd5mjO1kYPovSBq3+4LVCi5Nfl1JI8fS8i8kXbgQFGwBJRXczim8GlW8c2LMBKTtExYXOy/A==} engines: {node: '>=18'} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.cef50bd': - resolution: {integrity: sha512-FM94kS5l7lnX2NasgEV9FS8IwBVVsaor/rgNejiS8cvV5IfaFSwwoC3npMuHz/+JeC4QeRFpqHiBZ9ywTiunTQ==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.a7cf9ac': + resolution: {integrity: sha512-PcMK1OQMWJOcoYERSPE2y3Hc1eMbf9I2VGbYZrtBPKX0wfw9IgvYd1AoAg3egm6xKJT7nPBkYVAqBf3AW1KiUQ==} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.cef50bd': - resolution: {integrity: sha512-tlPpX5rPZNQHvob/zypa3KGDCygfDUGASGfMMuxQXUGyRRe6K6SmII1Kb04zdOFnI2qLdXInko8+Vqp6nYSo7A==} + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.a7cf9ac': + resolution: {integrity: sha512-MEnj8TkF9z4Z2qjz7v27BJt8r7EJ7nonsHQ/Qs70wqwlkSe7fkx0EYgUn8N49H3GG1QFcUQiLWAFcUhRVJsGeA==} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.cef50bd': - resolution: {integrity: sha512-hvgob74o25Z/F6Oxwdib/EouArhZlwkdjg2luy/KvdP+FZqfTi8kXBP6ICKG/NaGjPgtvyW2sIebhAKJiJzksQ==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.a7cf9ac': + resolution: {integrity: sha512-G9rktqtdxYzYKo8s5sPruppyQbgmriSWoiyHa01ltDsvZzGLyKnKedDUz5HKolGtniqxYZ2FxxEmASTJY9BUHQ==} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.cef50bd': - resolution: {integrity: sha512-tvplXhZo001wRXeZjhW2jeZyI5Ot9DW5APhT9vhAPb+1AngJ/WURxz6hLJ4upFMWNovVDK5SEOIDnUsrWPqCMQ==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.a7cf9ac': + resolution: {integrity: sha512-oBSnYZgAgXdjT48bYAPHb3s996D9S8mmIKZcXaPl98nhu8/B20MgH2DNmEipUlKGam3pEAvAeKdwXLMvu2qGJw==} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.cef50bd': - resolution: {integrity: sha512-DeeHtd7Ov6pHsAR86kKHjbp0YnOV8MK+goY//1N906aQ4H3QLI6fRLvXTf27nJ7wkGWebmPyg4I197OgSOBwog==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.a7cf9ac': + resolution: {integrity: sha512-V+1zeOSdAoJQbpQmwU2C8xDnQ0qEc4DzJgk1nUjWabdEY8J3UYDLvUg6KRBnwx2enLKuDeDUnm6It+jyXt+fBg==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.cef50bd': - resolution: {integrity: sha512-kXr6gNzeH5E6yiJHja9gzuoW2WLQqJBsx1JKUG1ZCXJ1CCJTK0t4W7yEFEM3xJqmn1Bfg0+OFfFCgEXNfwnXgg==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.a7cf9ac': + resolution: {integrity: sha512-WD2XugwMlUDomx1ISOvBeOs9ZGbu+0dSJtzY58zjcc+HUZzYDTeHdeLuEpvXfsfNDtNzXzaTeu21k3OPwkafhg==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.cef50bd': - resolution: {integrity: sha512-0Q108sH3Yq53XkUOJAIqQzuIhOFeZnsasj595w0AOw3AKiJGfCGog4MOGmZvTLnX3+bN57hkju42C4hb9W35lA==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.a7cf9ac': + resolution: {integrity: sha512-CmOOXU6kVOGHtvasRIVXxTI1xwqhwUggha0oqMLjBtddQZf1SpeHX+olCMyKxIxTNTgzUC4aTXCweBKd5i8rtA==} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.cef50bd': - resolution: {integrity: sha512-lxCZmM5GNP0WlpBX5lTzTtPwhaGygt1nZEGLHMWoyqPRMAE0/XQqL0Bp47cXE3xLRvG27b+N+OYQ/MzBcfHSxw==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.a7cf9ac': + resolution: {integrity: sha512-VBXHbtsZR0n0iJFnT1i7W7m1NxndJxUyKnl6drne7JA7aifdkRLaVUHcDhTxxneQ22rM1qMnyUZfKHW3F9MDsg==} cpu: [x64] os: [linux] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.cef50bd': - resolution: {integrity: sha512-mqDq9JTFr2ogrG9BpP/f1+P0bN41Ks+p14/rAXV8QXui96DDZS2nzDC0xmOXHA+PXxLJCzRfBS4YeK9TIeIpvA==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.a7cf9ac': + resolution: {integrity: sha512-rtEFTcht8lZPWCkPknqstjUPmhGDVGkWKKija9Uk/dPPA1sSQTj31swr9ihWtvRBZ7dx87Un52JpcFlSp0mGfA==} engines: {node: '>=14.21.3'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.cef50bd': - resolution: {integrity: sha512-ZI4zVh3E2ajPnr3F1yXF3MaRXfKD3XHS2Np2p6iARj0c8Zg8wPFC79H6to+TdMcZjOd5wTVLfDBLROKSAUsyLQ==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.a7cf9ac': + resolution: {integrity: sha512-C12yQ+0pnvYYAb2cMiEbyXJpmcOmbCvyASNcJSLpwwBNNpaJrOEoKcqLg95KOtTtyF+3imaIWlKeQDfm9JQMRw==} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.cef50bd': - resolution: {integrity: sha512-GElieXz2KDmo7UzvOOlY/EdPm+161kxVdFc8/F/AjZZlObKzPvOpBuleZNcnD+fBcZx23kxyARY63hW4MAoCcw==} + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.a7cf9ac': + resolution: {integrity: sha512-1Xju61rcXsi7Fzt04STDYcz14kdDuLfCqq4v01WmtTR1SNOjn/kD6C8f/3jsteR8vhOFvrkxbI61/vjQFWTU3Q==} cpu: [ia32] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.cef50bd': - resolution: {integrity: sha512-WWZHGk1iJt1bOtUFFmap8S5Vt2HJ0JwAj3u1XKec27nspYXEhyIQMnLCT3Mhnl37oC/gzFZ2eGLlfbc2F9Mwtg==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.a7cf9ac': + resolution: {integrity: sha512-DNS0nY64/hTWzCNhhwyEtcUNxgWzKuL/KYdWdDU+wKfWWrTCuOrnz2FIry8mkMFTTE91+SR7yLtayhoyTu/HFQ==} cpu: [x64] os: [win32] @@ -6796,11 +6796,11 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.7-commit.cef50bd: - resolution: {integrity: sha512-hGsUqljJ0jeBkgVM3qXvLlE6y5y/Ob6d1assxaCOSgzTuGMNuER8Of1E4OTI3Ssy5mW2aTrGRK1D/a/KP1q/Ww==} + rolldown@1.0.0-beta.7-commit.a7cf9ac: + resolution: {integrity: sha512-NQjq+jMfcge9+f2HOwga7Z5LkaBE3ZASGL6l0mcwCwGPjhD6cgw8vb4IR3oKIMyp7TEqr3ziI/kiCvcYIGUyeA==} hasBin: true peerDependencies: - '@oxc-project/runtime': 0.63.0 + '@oxc-project/runtime': 0.64.0 peerDependenciesMeta: '@oxc-project/runtime': optional: true @@ -8990,9 +8990,9 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.0 - '@oxc-project/runtime@0.63.0': {} + '@oxc-project/runtime@0.64.0': {} - '@oxc-project/types@0.63.0': {} + '@oxc-project/types@0.64.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -9066,42 +9066,42 @@ snapshots: '@publint/pack@0.1.1': {} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.cef50bd': + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.a7cf9ac': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.cef50bd': + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.a7cf9ac': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.cef50bd': + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.a7cf9ac': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.cef50bd': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.a7cf9ac': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.cef50bd': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.a7cf9ac': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.cef50bd': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.a7cf9ac': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.cef50bd': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.a7cf9ac': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.cef50bd': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.a7cf9ac': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.cef50bd': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.a7cf9ac': dependencies: '@napi-rs/wasm-runtime': 0.2.9 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.cef50bd': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.a7cf9ac': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.cef50bd': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.a7cf9ac': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.cef50bd': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.a7cf9ac': optional: true '@rollup/plugin-alias@5.1.1(rollup@4.34.9)': @@ -13082,26 +13082,26 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.7-commit.cef50bd(@oxc-project/runtime@0.63.0)(typescript@5.7.3): + rolldown@1.0.0-beta.7-commit.a7cf9ac(@oxc-project/runtime@0.64.0)(typescript@5.7.3): dependencies: - '@oxc-project/types': 0.63.0 + '@oxc-project/types': 0.64.0 '@valibot/to-json-schema': 1.0.0(valibot@1.0.0(typescript@5.7.3)) ansis: 3.17.0 valibot: 1.0.0(typescript@5.7.3) optionalDependencies: - '@oxc-project/runtime': 0.63.0 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.cef50bd - '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.cef50bd - '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.cef50bd - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.cef50bd - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.cef50bd - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.cef50bd - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.cef50bd - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.cef50bd - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.cef50bd - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.cef50bd - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.cef50bd - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.cef50bd + '@oxc-project/runtime': 0.64.0 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.a7cf9ac + '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.a7cf9ac + '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.a7cf9ac + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.a7cf9ac + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.a7cf9ac + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.a7cf9ac + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.a7cf9ac + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.a7cf9ac + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.a7cf9ac + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.a7cf9ac + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.a7cf9ac + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.a7cf9ac transitivePeerDependencies: - typescript From b20067594e7473700bff4d3c7d4dd75019177fb9 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Fri, 18 Apr 2025 14:01:41 +0900 Subject: [PATCH 067/102] release: v6.3.1 --- packages/create-vite/template-lit-ts/package.json | 2 +- packages/create-vite/template-lit/package.json | 2 +- packages/create-vite/template-preact-ts/package.json | 2 +- packages/create-vite/template-preact/package.json | 2 +- packages/create-vite/template-qwik-ts/package.json | 2 +- packages/create-vite/template-qwik/package.json | 2 +- packages/create-vite/template-react-ts/package.json | 2 +- packages/create-vite/template-react/package.json | 2 +- packages/create-vite/template-solid-ts/package.json | 2 +- packages/create-vite/template-solid/package.json | 2 +- packages/create-vite/template-svelte-ts/package.json | 2 +- packages/create-vite/template-svelte/package.json | 2 +- .../create-vite/template-vanilla-ts/package.json | 2 +- packages/create-vite/template-vanilla/package.json | 2 +- packages/create-vite/template-vue-ts/package.json | 2 +- packages/create-vite/template-vue/package.json | 2 +- packages/vite/CHANGELOG.md | 12 ++++++++++++ packages/vite/package.json | 2 +- 18 files changed, 29 insertions(+), 17 deletions(-) diff --git a/packages/create-vite/template-lit-ts/package.json b/packages/create-vite/template-lit-ts/package.json index c2963054473c22..db051778518513 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": "npm:rolldown-vite@^6.3.0" + "vite": "npm:rolldown-vite@^6.3.1" } } diff --git a/packages/create-vite/template-lit/package.json b/packages/create-vite/template-lit/package.json index 6744b6071ff6a0..81710870f71ecc 100644 --- a/packages/create-vite/template-lit/package.json +++ b/packages/create-vite/template-lit/package.json @@ -12,6 +12,6 @@ "lit": "^3.3.0" }, "devDependencies": { - "vite": "npm:rolldown-vite@^6.3.0" + "vite": "npm:rolldown-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 61c18a2df8a445..5ab5dca280e248 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": "npm:rolldown-vite@^6.3.0" + "vite": "npm:rolldown-vite@^6.3.1" } } diff --git a/packages/create-vite/template-preact/package.json b/packages/create-vite/template-preact/package.json index 377942b5f4a872..537a86111acdf6 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": "npm:rolldown-vite@^6.3.0" + "vite": "npm:rolldown-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 2209e3c2aa9926..4a17b266ef07b4 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": "npm:rolldown-vite@^6.3.0" + "vite": "npm:rolldown-vite@^6.3.1" }, "dependencies": { "@builder.io/qwik": "^1.13.0" diff --git a/packages/create-vite/template-qwik/package.json b/packages/create-vite/template-qwik/package.json index ed88f532ecd0bf..1dd71cd376466d 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": "npm:rolldown-vite@^6.3.0" + "vite": "npm:rolldown-vite@^6.3.1" }, "dependencies": { "@builder.io/qwik": "^1.13.0" diff --git a/packages/create-vite/template-react-ts/package.json b/packages/create-vite/template-react-ts/package.json index 4ad5c2d2e31a57..5bf9f1d44e9ea5 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.30.1", - "vite": "npm:rolldown-vite@^6.3.0" + "vite": "npm:rolldown-vite@^6.3.1" } } diff --git a/packages/create-vite/template-react/package.json b/packages/create-vite/template-react/package.json index 2359660fe2fec7..29123a0cc39d5e 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": "npm:rolldown-vite@^6.3.0" + "vite": "npm:rolldown-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 5f06a23390bcd4..370a02e1342612 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": "npm:rolldown-vite@^6.3.0", + "vite": "npm:rolldown-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 f2a56b77116394..839bea3ec37200 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": "npm:rolldown-vite@^6.3.0", + "vite": "npm:rolldown-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 0dd091a0e57ea1..2d1e32e6c5dd74 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.27.0", "svelte-check": "^4.1.6", "typescript": "~5.7.2", - "vite": "npm:rolldown-vite@^6.3.0" + "vite": "npm:rolldown-vite@^6.3.1" } } diff --git a/packages/create-vite/template-svelte/package.json b/packages/create-vite/template-svelte/package.json index 6af4aa5e5a15aa..0f4c7b193f6666 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.27.0", - "vite": "npm:rolldown-vite@^6.3.0" + "vite": "npm:rolldown-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 d8c130a1f41089..e5096f923d0a61 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": "npm:rolldown-vite@^6.3.0" + "vite": "npm:rolldown-vite@^6.3.1" } } diff --git a/packages/create-vite/template-vanilla/package.json b/packages/create-vite/template-vanilla/package.json index 5693a15b0c0234..54b2289be23ba8 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": "npm:rolldown-vite@^6.3.0" + "vite": "npm:rolldown-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 a066e9b40983c9..21aab672272c76 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.3", "@vue/tsconfig": "^0.7.0", "typescript": "~5.7.2", - "vite": "npm:rolldown-vite@^6.3.0", + "vite": "npm:rolldown-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 69daab90f3a0a7..eb578f89afd6b8 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.3", - "vite": "npm:rolldown-vite@^6.3.0" + "vite": "npm:rolldown-vite@^6.3.1" } } diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index ec38820c70f8a4..93d459c75bd3e0 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,15 @@ +## 6.3.1 (2025-04-18) + +* feat: update rolldown ([4c2f7db](https://github.com/vitejs/rolldown-vite/commit/4c2f7db)) +* feat(css): improve lightningcss messages (#19880) ([c713f79](https://github.com/vitejs/rolldown-vite/commit/c713f79)), closes [#19880](https://github.com/vitejs/rolldown-vite/issues/19880) +* release: v6.3.2 ([4bc17b4](https://github.com/vitejs/rolldown-vite/commit/4bc17b4)) +* fix: match default asserts case insensitive (#19852) ([cbdab1d](https://github.com/vitejs/rolldown-vite/commit/cbdab1d)), closes [#19852](https://github.com/vitejs/rolldown-vite/issues/19852) +* fix: open first url if host does not match any urls (#19886) ([6abbdce](https://github.com/vitejs/rolldown-vite/commit/6abbdce)), closes [#19886](https://github.com/vitejs/rolldown-vite/issues/19886) +* fix(css): respect `css.lightningcss` option in css minification process (#19879) ([b5055e0](https://github.com/vitejs/rolldown-vite/commit/b5055e0)), closes [#19879](https://github.com/vitejs/rolldown-vite/issues/19879) +* fix(deps): update all non-major dependencies (#19698) ([bab4cb9](https://github.com/vitejs/rolldown-vite/commit/bab4cb9)), closes [#19698](https://github.com/vitejs/rolldown-vite/issues/19698) + + + ## 6.3.0 (2025-04-17) * feat: reexport `withFilter` from rolldown (#122) ([f2d0354](https://github.com/vitejs/rolldown-vite/commit/f2d0354)), closes [#122](https://github.com/vitejs/rolldown-vite/issues/122) diff --git a/packages/vite/package.json b/packages/vite/package.json index 54e19de759ed90..7224e36185ee12 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "rolldown-vite", - "version": "6.3.0", + "version": "6.3.1", "type": "module", "license": "MIT", "author": "Evan You", From 1f0f75507b6df50b5ed8a880af6bccb0fa753932 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Sat, 19 Apr 2025 18:58:21 +0900 Subject: [PATCH 068/102] perf: add filter to asset plugin (#118) --- packages/vite/src/node/config.ts | 3 +++ packages/vite/src/node/plugins/asset.ts | 34 ++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index 79c61699c1149c..f80f9e06a14204 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -59,6 +59,7 @@ import { resolveCSSOptions, } from './plugins/css' import { + arraify, asyncFlatten, createDebugger, createFilter, @@ -621,6 +622,7 @@ export interface ResolvedConfig preview: ResolvedPreviewOptions ssr: ResolvedSSROptions assetsInclude: (file: string) => boolean + rawAssetsInclude: (string | RegExp)[] logger: Logger createResolver: (options?: Partial) => ResolveFn optimizeDeps: DepOptimizationOptions @@ -1703,6 +1705,7 @@ export async function resolveConfig( assetsInclude(file: string) { return DEFAULT_ASSETS_RE.test(file) || assetsFilter(file) }, + rawAssetsInclude: config.assetsInclude ? arraify(config.assetsInclude) : [], logger, packageCache, worker: resolvedWorkerOptions, diff --git a/packages/vite/src/node/plugins/asset.ts b/packages/vite/src/node/plugins/asset.ts index e2ebd78039cfe8..96fdecec36aa9d 100644 --- a/packages/vite/src/node/plugins/asset.ts +++ b/packages/vite/src/node/plugins/asset.ts @@ -5,6 +5,7 @@ import * as mrmime from 'mrmime' import type { NormalizedOutputOptions, RenderedChunk } from 'rolldown' import MagicString from 'magic-string' import colors from 'picocolors' +import picomatch from 'picomatch' import { createToImportMetaURLBasedRelativeRuntime, toOutputFilePathInJS, @@ -23,7 +24,11 @@ import { removeUrlQuery, urlRE, } from '../utils' -import { DEFAULT_ASSETS_INLINE_LIMIT, FS_PREFIX } from '../constants' +import { + DEFAULT_ASSETS_INLINE_LIMIT, + DEFAULT_ASSETS_RE, + FS_PREFIX, +} from '../constants' import { cleanUrl, splitFileAndPostfix, @@ -149,6 +154,17 @@ export function assetPlugin(config: ResolvedConfig): Plugin { }, resolveId: { + filter: { + id: [ + urlRE, + DEFAULT_ASSETS_RE, + ...config.rawAssetsInclude.map((v) => + typeof v === 'string' + ? picomatch.makeRe(`${v}{?*,}`, { dot: true }) + : addQueryToRegex(v), + ), + ], + }, handler(id) { if (!config.assetsInclude(cleanUrl(id)) && !urlRE.test(id)) { return @@ -165,6 +181,14 @@ export function assetPlugin(config: ResolvedConfig): Plugin { load: { filter: { id: { + include: [ + rawRE, + urlRE, + DEFAULT_ASSETS_RE, + ...config.rawAssetsInclude.map((v) => + typeof v === 'string' ? `${v}{?*,}` : addQueryToRegex(v), + ), + ], // Rollup convention, this id should be handled by the // plugin that marked it with \0 exclude: /^\0/, @@ -279,6 +303,14 @@ export function assetPlugin(config: ResolvedConfig): Plugin { } } +function addQueryToRegex(input: RegExp) { + return new RegExp( + // replace `$` with `\?.*?$` (ignore `\$`) + input.source.replace(/(? Date: Sat, 19 Apr 2025 19:56:42 +0900 Subject: [PATCH 069/102] perf: remove data uri plugin (#130) --- packages/vite/src/node/build.ts | 3 -- packages/vite/src/node/plugins/dataUri.ts | 61 ----------------------- 2 files changed, 64 deletions(-) delete mode 100644 packages/vite/src/node/plugins/dataUri.ts diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index a1b891a5a3282b..1311099b6e4116 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -64,7 +64,6 @@ import { import { perEnvironmentPlugin, resolveEnvironmentPlugins } from './plugin' import { manifestPlugin } from './plugins/manifest' import type { Logger } from './logger' -import { dataURIPlugin } from './plugins/dataUri' import { buildImportAnalysisPlugin } from './plugins/importAnalysisBuild' import { ssrManifestPlugin } from './ssr/ssrManifestPlugin' import { buildLoadFallbackPlugin } from './plugins/loadFallback' @@ -482,8 +481,6 @@ export async function resolveBuildPlugins(config: ResolvedConfig): Promise<{ return { pre: [ completeSystemWrapPlugin(), - // rolldown has builtin support datauri, use a switch to control it for convenience - ...(enableNativePlugin === true ? [] : [dataURIPlugin()]), perEnvironmentPlugin( 'vite:rollup-options-plugins', async (environment) => diff --git a/packages/vite/src/node/plugins/dataUri.ts b/packages/vite/src/node/plugins/dataUri.ts deleted file mode 100644 index 9560700a5fd80e..00000000000000 --- a/packages/vite/src/node/plugins/dataUri.ts +++ /dev/null @@ -1,61 +0,0 @@ -// This is based on @rollup/plugin-data-uri -// MIT Licensed https://github.com/rollup/plugins/blob/master/LICENSE -// ref https://github.com/vitejs/vite/issues/1428#issuecomment-757033808 -import { URL } from 'node:url' -import type { Plugin } from '../plugin' - -const dataUriRE = /^([^/]+\/[^;,]+)(;base64)?,([\s\S]*)$/ -const base64RE = /base64/i -const dataUriPrefix = `\0/@data-uri/` - -/** - * Build only, since importing from a data URI works natively. - */ -export function dataURIPlugin(): Plugin { - let resolved: Map - - return { - name: 'vite:data-uri', - - buildStart() { - resolved = new Map() - }, - - resolveId(id) { - if (!id.trimStart().startsWith('data:')) { - return - } - - const uri = new URL(id) - if (uri.protocol !== 'data:') { - return - } - - const match = dataUriRE.exec(uri.pathname) - if (!match) { - return - } - - const [, mime, format, data] = match - if (mime !== 'text/javascript') { - throw new Error( - `data URI with non-JavaScript mime type is not supported. If you're using legacy JavaScript MIME types (such as 'application/javascript'), please use 'text/javascript' instead.`, - ) - } - - // decode data - const base64 = format && base64RE.test(format.substring(1)) - const content = base64 - ? Buffer.from(data, 'base64').toString('utf-8') - : data - resolved.set(id, content) - return dataUriPrefix + id - }, - - load(id) { - if (id.startsWith(dataUriPrefix)) { - return resolved.get(id.slice(dataUriPrefix.length)) - } - }, - } -} From c655b431db1067be224f3c16b36da0e2b199e9b3 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Mon, 21 Apr 2025 11:15:37 +0900 Subject: [PATCH 070/102] feat: update rolldown --- packages/vite/package.json | 2 +- pnpm-lock.yaml | 106 ++++++++++++++++++------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index 7224e36185ee12..0f84a66f8f507f 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -90,7 +90,7 @@ "lightningcss": "^1.29.3", "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rolldown": "1.0.0-beta.7-commit.a7cf9ac", + "rolldown": "1.0.0-beta.7-commit.a684277", "tinyglobby": "^0.2.12" }, "optionalDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 16f8b94e6bef55..5795bd5c3fb84c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -239,8 +239,8 @@ importers: specifier: ^8.5.3 version: 8.5.3 rolldown: - specifier: 1.0.0-beta.7-commit.a7cf9ac - version: 1.0.0-beta.7-commit.a7cf9ac(@oxc-project/runtime@0.64.0)(typescript@5.7.3) + specifier: 1.0.0-beta.7-commit.a684277 + version: 1.0.0-beta.7-commit.a684277(@oxc-project/runtime@0.64.0)(typescript@5.7.3) tinyglobby: specifier: ^0.2.12 version: 0.2.12 @@ -2942,63 +2942,63 @@ packages: resolution: {integrity: sha512-TvCl79Y8v18ZhFGd5mjO1kYPovSBq3+4LVCi5Nfl1JI8fS8i8kXbgQFGwBJRXczim8GlW8c2LMBKTtExYXOy/A==} engines: {node: '>=18'} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.a7cf9ac': - resolution: {integrity: sha512-PcMK1OQMWJOcoYERSPE2y3Hc1eMbf9I2VGbYZrtBPKX0wfw9IgvYd1AoAg3egm6xKJT7nPBkYVAqBf3AW1KiUQ==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.a684277': + resolution: {integrity: sha512-6RSChw4dFgDd+Q1h+tCMGSFFfwlJk9hWGb6CWUT7tpdbZ1SYDVhZg2dQKz5+/FRHm3z0Wj0mBdPKtByCm1h2Aw==} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.a7cf9ac': - resolution: {integrity: sha512-MEnj8TkF9z4Z2qjz7v27BJt8r7EJ7nonsHQ/Qs70wqwlkSe7fkx0EYgUn8N49H3GG1QFcUQiLWAFcUhRVJsGeA==} + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.a684277': + resolution: {integrity: sha512-KTxRz90z76iA14zeeOnKZ7k14plhr90mPQVNLVqR5JfEbrroIkja09FwyhNbV8v4gJ2QXa0Em9ddutN/aSd0mA==} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.a7cf9ac': - resolution: {integrity: sha512-G9rktqtdxYzYKo8s5sPruppyQbgmriSWoiyHa01ltDsvZzGLyKnKedDUz5HKolGtniqxYZ2FxxEmASTJY9BUHQ==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.a684277': + resolution: {integrity: sha512-FtlZDJeokyS0kw1A2HWkiU85adMeVn6M6/JU20H5JodtWz84jPJ/tgwPDehplagmPpqiifyTxSxInK+VXA58jw==} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.a7cf9ac': - resolution: {integrity: sha512-oBSnYZgAgXdjT48bYAPHb3s996D9S8mmIKZcXaPl98nhu8/B20MgH2DNmEipUlKGam3pEAvAeKdwXLMvu2qGJw==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.a684277': + resolution: {integrity: sha512-razlu8mK3r8hez86DCYEaTX9RDUfxDAk5nb/E5XoTmYoyfhhjnTnm9JLgxibC51xeCPJduul6CawU/xsdrbsCw==} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.a7cf9ac': - resolution: {integrity: sha512-V+1zeOSdAoJQbpQmwU2C8xDnQ0qEc4DzJgk1nUjWabdEY8J3UYDLvUg6KRBnwx2enLKuDeDUnm6It+jyXt+fBg==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.a684277': + resolution: {integrity: sha512-rx15jiqtmsr9khjVLPtF1wGSsBkMKNbcb4Fi4gMHGmUjgmvk+dF4XwUVewcVUnl0ogue0fM+ZlF1gSd8mq7PHw==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.a7cf9ac': - resolution: {integrity: sha512-WD2XugwMlUDomx1ISOvBeOs9ZGbu+0dSJtzY58zjcc+HUZzYDTeHdeLuEpvXfsfNDtNzXzaTeu21k3OPwkafhg==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.a684277': + resolution: {integrity: sha512-7x8j8WvSN6HLspQvsOCWkNDGjnCbIO5uaXzT6t/yiZODDyTzwDq6Ux9xhie247AepfWxtvlRu2jUfwQTMBqJyw==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.a7cf9ac': - resolution: {integrity: sha512-CmOOXU6kVOGHtvasRIVXxTI1xwqhwUggha0oqMLjBtddQZf1SpeHX+olCMyKxIxTNTgzUC4aTXCweBKd5i8rtA==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.a684277': + resolution: {integrity: sha512-fmmNBHCYr0hxaMB+4dNQn4fEaUpILJ71mb8gMA+Jk0fUSExGLOeDoxxImMKmtCs869LCC3u3b++kaSlJmf/gUw==} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.a7cf9ac': - resolution: {integrity: sha512-VBXHbtsZR0n0iJFnT1i7W7m1NxndJxUyKnl6drne7JA7aifdkRLaVUHcDhTxxneQ22rM1qMnyUZfKHW3F9MDsg==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.a684277': + resolution: {integrity: sha512-W4X95Y2URGUJ9FyuHly8dp/T67UHGhlMRtDFCiYCo3vBeCq1Ozq3tj1blnQXwSBJitJ/4vFiIdw2SGXU9FWtNg==} cpu: [x64] os: [linux] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.a7cf9ac': - resolution: {integrity: sha512-rtEFTcht8lZPWCkPknqstjUPmhGDVGkWKKija9Uk/dPPA1sSQTj31swr9ihWtvRBZ7dx87Un52JpcFlSp0mGfA==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.a684277': + resolution: {integrity: sha512-wifA0+3gITt8e8GEgDCOdEbyb0QH5oYVA6i2v2s0F9KRNXktyPoIEQrLWPIbIjgzxIC29yFBlZq0311srG3QNg==} engines: {node: '>=14.21.3'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.a7cf9ac': - resolution: {integrity: sha512-C12yQ+0pnvYYAb2cMiEbyXJpmcOmbCvyASNcJSLpwwBNNpaJrOEoKcqLg95KOtTtyF+3imaIWlKeQDfm9JQMRw==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.a684277': + resolution: {integrity: sha512-y372uNfyfR6eQERWo0vQamTPWuyPK99rFgVnp2qgSW8UuFm4UUQK3WC//S1J/jMpBy6Q6zKjD3nRgDI6YNCSKQ==} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.a7cf9ac': - resolution: {integrity: sha512-1Xju61rcXsi7Fzt04STDYcz14kdDuLfCqq4v01WmtTR1SNOjn/kD6C8f/3jsteR8vhOFvrkxbI61/vjQFWTU3Q==} + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.a684277': + resolution: {integrity: sha512-dIuhUgM/oeBjbYhkCjU/jpNg51koTvoRxNyTn6PCgVLIImPEJ/einpQ/7l+VXsoh90qN+7bXdmGdyERVK1gYaw==} cpu: [ia32] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.a7cf9ac': - resolution: {integrity: sha512-DNS0nY64/hTWzCNhhwyEtcUNxgWzKuL/KYdWdDU+wKfWWrTCuOrnz2FIry8mkMFTTE91+SR7yLtayhoyTu/HFQ==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.a684277': + resolution: {integrity: sha512-NCFGVU/tTQWLZSpCh4fBMakyEIG566quw0hJm/3Tl4M399gdDrL0JkIk2PgJzPm9jcy3ZqV+xsm92fv2ZKHnLg==} cpu: [x64] os: [win32] @@ -6796,8 +6796,8 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.7-commit.a7cf9ac: - resolution: {integrity: sha512-NQjq+jMfcge9+f2HOwga7Z5LkaBE3ZASGL6l0mcwCwGPjhD6cgw8vb4IR3oKIMyp7TEqr3ziI/kiCvcYIGUyeA==} + rolldown@1.0.0-beta.7-commit.a684277: + resolution: {integrity: sha512-bniKhRZy9mL/TQNbhdo3R2/Ggs7OJ06oQbEa3JbvePShX/UOJT2uL5W3RSxxkIvYY0HdyQpX40yAYb8jvZHYag==} hasBin: true peerDependencies: '@oxc-project/runtime': 0.64.0 @@ -9066,42 +9066,42 @@ snapshots: '@publint/pack@0.1.1': {} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.a7cf9ac': + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.a684277': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.a7cf9ac': + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.a684277': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.a7cf9ac': + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.a684277': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.a7cf9ac': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.a684277': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.a7cf9ac': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.a684277': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.a7cf9ac': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.a684277': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.a7cf9ac': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.a684277': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.a7cf9ac': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.a684277': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.a7cf9ac': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.a684277': dependencies: '@napi-rs/wasm-runtime': 0.2.9 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.a7cf9ac': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.a684277': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.a7cf9ac': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.a684277': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.a7cf9ac': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.a684277': optional: true '@rollup/plugin-alias@5.1.1(rollup@4.34.9)': @@ -13082,7 +13082,7 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.7-commit.a7cf9ac(@oxc-project/runtime@0.64.0)(typescript@5.7.3): + rolldown@1.0.0-beta.7-commit.a684277(@oxc-project/runtime@0.64.0)(typescript@5.7.3): dependencies: '@oxc-project/types': 0.64.0 '@valibot/to-json-schema': 1.0.0(valibot@1.0.0(typescript@5.7.3)) @@ -13090,18 +13090,18 @@ snapshots: valibot: 1.0.0(typescript@5.7.3) optionalDependencies: '@oxc-project/runtime': 0.64.0 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.a7cf9ac - '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.a7cf9ac - '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.a7cf9ac - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.a7cf9ac - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.a7cf9ac - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.a7cf9ac - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.a7cf9ac - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.a7cf9ac - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.a7cf9ac - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.a7cf9ac - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.a7cf9ac - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.a7cf9ac + '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.a684277 + '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.a684277 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.a684277 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.a684277 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.a684277 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.a684277 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.a684277 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.a684277 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.a684277 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.a684277 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.a684277 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.a684277 transitivePeerDependencies: - typescript From 71df1f0051250e4d58655ea53ea827cd6f191273 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Mon, 21 Apr 2025 11:42:40 +0900 Subject: [PATCH 071/102] chore: remove unnecessary workaround --- docs/_data/blog.data.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/blog.data.ts b/docs/_data/blog.data.ts index 9cd7af169babac..39d45ec2b2b1a2 100644 --- a/docs/_data/blog.data.ts +++ b/docs/_data/blog.data.ts @@ -9,8 +9,8 @@ interface Post { } } -// NOTE: https://github.com/rolldown/rolldown/issues/3048, https://github.com/oxc-project/oxc/issues/7951 -export declare const data: Post[] +declare const data: Post[] +export { data } export default createContentLoader('blog/*.md', { // excerpt: true, From bc90a9ef6cd01783e429d1bf17f2a61636685501 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Mon, 21 Apr 2025 12:01:26 +0900 Subject: [PATCH 072/102] fix(oxc): correctly type oxc options (#131) --- packages/vite/src/node/config.ts | 2 +- packages/vite/src/node/plugins/oxc.ts | 37 ++------------------------- 2 files changed, 3 insertions(+), 36 deletions(-) diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index f80f9e06a14204..306913bd3fb3d6 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -1645,7 +1645,7 @@ export async function resolveConfig( ), ) } else { - oxc = convertEsbuildConfigToOxcConfig(config.esbuild, logger) + oxc = convertEsbuildConfigToOxcConfig(config.esbuild) } } diff --git a/packages/vite/src/node/plugins/oxc.ts b/packages/vite/src/node/plugins/oxc.ts index eee8e1eb504409..573b0782af74d1 100644 --- a/packages/vite/src/node/plugins/oxc.ts +++ b/packages/vite/src/node/plugins/oxc.ts @@ -20,7 +20,7 @@ import { import type { ResolvedConfig } from '../config' import type { Plugin } from '../plugin' import { cleanUrl } from '../../shared/utils' -import type { Environment, Logger } from '..' +import type { Environment } from '..' import type { ViteDevServer } from '../server' import { JS_TYPES_RE } from '../constants' import type { ESBuildOptions } from './esbuild' @@ -36,7 +36,7 @@ const jsxExtensionsRE = /\.(?:j|t)sx\b/ const validExtensionRE = /\.\w+$/ export interface OxcOptions - extends Exclude< + extends Omit< OxcTransformOptions, 'cwd' | 'sourceType' | 'lang' | 'sourcemap' | 'helpers' > { @@ -564,7 +564,6 @@ type OxcJsxOptions = Exclude export function convertEsbuildConfigToOxcConfig( esbuildConfig: ESBuildOptions, - logger: Logger, ): OxcOptions { const { jsxInject, include, exclude, ...esbuildTransformOptions } = esbuildConfig @@ -607,41 +606,9 @@ export function convertEsbuildConfigToOxcConfig( oxcOptions.jsx = jsxOptions } - if (esbuildTransformOptions.loader) { - if (['js', 'jsx', 'ts', 'tsx'].includes(esbuildTransformOptions.loader)) { - oxcOptions.lang = esbuildTransformOptions.loader as - | 'js' - | 'jsx' - | 'ts' - | 'tsx' - } else { - logger.warn( - `The esbuild loader ${esbuildTransformOptions.loader} is not supported by oxc`, - ) - } - } if (esbuildTransformOptions.define) { oxcOptions.define = esbuildTransformOptions.define } - switch (esbuildTransformOptions.sourcemap) { - case true: - case false: - case undefined: - oxcOptions.sourcemap = esbuildTransformOptions.sourcemap - break - case 'external': - oxcOptions.sourcemap = true - break - // ignore it because it's not supported by esbuild `transform` - case 'linked': - break - default: - logger.warn( - `The esbuild sourcemap ${esbuildTransformOptions.sourcemap} is not supported by oxc`, - ) - break - } - return oxcOptions } From f64dd5c0bf6e671420522fdea729445fb63b6b7f Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Mon, 21 Apr 2025 13:07:20 +0900 Subject: [PATCH 073/102] release: v6.3.2 --- packages/create-vite/template-lit-ts/package.json | 2 +- packages/create-vite/template-lit/package.json | 2 +- packages/create-vite/template-preact-ts/package.json | 2 +- packages/create-vite/template-preact/package.json | 2 +- packages/create-vite/template-qwik-ts/package.json | 2 +- packages/create-vite/template-qwik/package.json | 2 +- packages/create-vite/template-react-ts/package.json | 2 +- packages/create-vite/template-react/package.json | 2 +- packages/create-vite/template-solid-ts/package.json | 2 +- packages/create-vite/template-solid/package.json | 2 +- packages/create-vite/template-svelte-ts/package.json | 2 +- packages/create-vite/template-svelte/package.json | 2 +- packages/create-vite/template-vanilla-ts/package.json | 2 +- packages/create-vite/template-vanilla/package.json | 2 +- packages/create-vite/template-vue-ts/package.json | 2 +- packages/create-vite/template-vue/package.json | 2 +- packages/vite/CHANGELOG.md | 9 +++++++++ packages/vite/package.json | 2 +- 18 files changed, 26 insertions(+), 17 deletions(-) diff --git a/packages/create-vite/template-lit-ts/package.json b/packages/create-vite/template-lit-ts/package.json index db051778518513..0d2a6b4f41ef32 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": "npm:rolldown-vite@^6.3.1" + "vite": "npm:rolldown-vite@^6.3.2" } } diff --git a/packages/create-vite/template-lit/package.json b/packages/create-vite/template-lit/package.json index 81710870f71ecc..682c4c39fb421a 100644 --- a/packages/create-vite/template-lit/package.json +++ b/packages/create-vite/template-lit/package.json @@ -12,6 +12,6 @@ "lit": "^3.3.0" }, "devDependencies": { - "vite": "npm:rolldown-vite@^6.3.1" + "vite": "npm:rolldown-vite@^6.3.2" } } diff --git a/packages/create-vite/template-preact-ts/package.json b/packages/create-vite/template-preact-ts/package.json index 5ab5dca280e248..69f6d6aa5adbb7 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": "npm:rolldown-vite@^6.3.1" + "vite": "npm:rolldown-vite@^6.3.2" } } diff --git a/packages/create-vite/template-preact/package.json b/packages/create-vite/template-preact/package.json index 537a86111acdf6..d27636d9a436a2 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": "npm:rolldown-vite@^6.3.1" + "vite": "npm:rolldown-vite@^6.3.2" } } diff --git a/packages/create-vite/template-qwik-ts/package.json b/packages/create-vite/template-qwik-ts/package.json index 4a17b266ef07b4..c3fff4ef953ac7 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": "npm:rolldown-vite@^6.3.1" + "vite": "npm:rolldown-vite@^6.3.2" }, "dependencies": { "@builder.io/qwik": "^1.13.0" diff --git a/packages/create-vite/template-qwik/package.json b/packages/create-vite/template-qwik/package.json index 1dd71cd376466d..b42d5d34e8f5ea 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": "npm:rolldown-vite@^6.3.1" + "vite": "npm:rolldown-vite@^6.3.2" }, "dependencies": { "@builder.io/qwik": "^1.13.0" diff --git a/packages/create-vite/template-react-ts/package.json b/packages/create-vite/template-react-ts/package.json index 5bf9f1d44e9ea5..d1c9dfe932824c 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.30.1", - "vite": "npm:rolldown-vite@^6.3.1" + "vite": "npm:rolldown-vite@^6.3.2" } } diff --git a/packages/create-vite/template-react/package.json b/packages/create-vite/template-react/package.json index 29123a0cc39d5e..11d07b26e06076 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": "npm:rolldown-vite@^6.3.1" + "vite": "npm:rolldown-vite@^6.3.2" } } diff --git a/packages/create-vite/template-solid-ts/package.json b/packages/create-vite/template-solid-ts/package.json index 370a02e1342612..b8bbe82ac130b3 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": "npm:rolldown-vite@^6.3.1", + "vite": "npm:rolldown-vite@^6.3.2", "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 839bea3ec37200..147e02d9a258d1 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": "npm:rolldown-vite@^6.3.1", + "vite": "npm:rolldown-vite@^6.3.2", "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 2d1e32e6c5dd74..4a34d4e37c22a8 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.27.0", "svelte-check": "^4.1.6", "typescript": "~5.7.2", - "vite": "npm:rolldown-vite@^6.3.1" + "vite": "npm:rolldown-vite@^6.3.2" } } diff --git a/packages/create-vite/template-svelte/package.json b/packages/create-vite/template-svelte/package.json index 0f4c7b193f6666..5dd49f634453b8 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.27.0", - "vite": "npm:rolldown-vite@^6.3.1" + "vite": "npm:rolldown-vite@^6.3.2" } } diff --git a/packages/create-vite/template-vanilla-ts/package.json b/packages/create-vite/template-vanilla-ts/package.json index e5096f923d0a61..36acbb765b7929 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": "npm:rolldown-vite@^6.3.1" + "vite": "npm:rolldown-vite@^6.3.2" } } diff --git a/packages/create-vite/template-vanilla/package.json b/packages/create-vite/template-vanilla/package.json index 54b2289be23ba8..90a41b242c25d0 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": "npm:rolldown-vite@^6.3.1" + "vite": "npm:rolldown-vite@^6.3.2" } } diff --git a/packages/create-vite/template-vue-ts/package.json b/packages/create-vite/template-vue-ts/package.json index 21aab672272c76..6c6f1210b19d28 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.3", "@vue/tsconfig": "^0.7.0", "typescript": "~5.7.2", - "vite": "npm:rolldown-vite@^6.3.1", + "vite": "npm:rolldown-vite@^6.3.2", "vue-tsc": "^2.2.8" } } diff --git a/packages/create-vite/template-vue/package.json b/packages/create-vite/template-vue/package.json index eb578f89afd6b8..f9ec26967e4164 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.3", - "vite": "npm:rolldown-vite@^6.3.1" + "vite": "npm:rolldown-vite@^6.3.2" } } diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index 93d459c75bd3e0..821faf2e1eaf85 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,12 @@ +## 6.3.2 (2025-04-21) + +* fix(oxc): correctly type oxc options (#131) ([bc90a9e](https://github.com/vitejs/rolldown-vite/commit/bc90a9e)), closes [#131](https://github.com/vitejs/rolldown-vite/issues/131) +* feat: update rolldown ([c655b43](https://github.com/vitejs/rolldown-vite/commit/c655b43)) +* perf: add filter to asset plugin (#118) ([1f0f755](https://github.com/vitejs/rolldown-vite/commit/1f0f755)), closes [#118](https://github.com/vitejs/rolldown-vite/issues/118) +* perf: remove data uri plugin (#130) ([33ba886](https://github.com/vitejs/rolldown-vite/commit/33ba886)), closes [#130](https://github.com/vitejs/rolldown-vite/issues/130) + + + ## 6.3.1 (2025-04-18) * feat: update rolldown ([4c2f7db](https://github.com/vitejs/rolldown-vite/commit/4c2f7db)) diff --git a/packages/vite/package.json b/packages/vite/package.json index 0f84a66f8f507f..f060294d7224c5 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "rolldown-vite", - "version": "6.3.1", + "version": "6.3.2", "type": "module", "license": "MIT", "author": "Evan You", From cd8aa7610685855ffe835b026f028273487cce9b Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Tue, 22 Apr 2025 13:02:27 +0900 Subject: [PATCH 074/102] feat: update rolldown --- packages/vite/package.json | 6 +- pnpm-lock.yaml | 132 ++++++++++++++++++------------------- 2 files changed, 69 insertions(+), 69 deletions(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index f060294d7224c5..e48c6e43200cc6 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -85,12 +85,12 @@ }, "//": "READ CONTRIBUTING.md to understand what to put under deps vs. devDeps!", "dependencies": { - "@oxc-project/runtime": "0.64.0", + "@oxc-project/runtime": "0.65.0", "fdir": "^6.4.3", "lightningcss": "^1.29.3", "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rolldown": "1.0.0-beta.7-commit.a684277", + "rolldown": "1.0.0-beta.7-commit.30e0395", "tinyglobby": "^0.2.12" }, "optionalDependencies": { @@ -100,7 +100,7 @@ "@ampproject/remapping": "^2.3.0", "@babel/parser": "^7.27.0", "@jridgewell/trace-mapping": "^0.3.25", - "@oxc-project/types": "0.64.0", + "@oxc-project/types": "0.65.0", "@polka/compression": "^1.0.0-next.25", "@rollup/plugin-alias": "^5.1.1", "@rollup/plugin-commonjs": "^28.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5795bd5c3fb84c..78bb5a679f980c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -224,8 +224,8 @@ importers: packages/vite: dependencies: '@oxc-project/runtime': - specifier: 0.64.0 - version: 0.64.0 + specifier: 0.65.0 + version: 0.65.0 fdir: specifier: ^6.4.3 version: 6.4.3(picomatch@4.0.2) @@ -239,8 +239,8 @@ importers: specifier: ^8.5.3 version: 8.5.3 rolldown: - specifier: 1.0.0-beta.7-commit.a684277 - version: 1.0.0-beta.7-commit.a684277(@oxc-project/runtime@0.64.0)(typescript@5.7.3) + specifier: 1.0.0-beta.7-commit.30e0395 + version: 1.0.0-beta.7-commit.30e0395(@oxc-project/runtime@0.65.0)(typescript@5.7.3) tinyglobby: specifier: ^0.2.12 version: 0.2.12 @@ -255,8 +255,8 @@ importers: specifier: ^0.3.25 version: 0.3.25 '@oxc-project/types': - specifier: 0.64.0 - version: 0.64.0 + specifier: 0.65.0 + version: 0.65.0 '@polka/compression': specifier: ^1.0.0-next.25 version: 1.0.0-next.25 @@ -2834,12 +2834,12 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@oxc-project/runtime@0.64.0': - resolution: {integrity: sha512-OTrPmipjz8J5w2SdXEi6JUrMITqIopAn7xKCbmfsNEGfOiWDShisSC9fcIKEuKfceUjF9hiAwUc83q+BLhbnDw==} + '@oxc-project/runtime@0.65.0': + resolution: {integrity: sha512-qn70kbkGtJ3uWz+HXha+kufRXkT+pZWckJKL8jUPzXH5UNszSSwADkNQhb7/uit3tC70wFm9qPRlLHnJcjSGuA==} engines: {node: '>=6.9.0'} - '@oxc-project/types@0.64.0': - resolution: {integrity: sha512-B0dxuEZFV6M4tXjPFwDSaED5/J55YUhODBaF09xNFNRrEyzQLKZuhKXAw1xYK8bO4K8Jn1d21TZfei3kAIE8dA==} + '@oxc-project/types@0.65.0': + resolution: {integrity: sha512-7MpMzyXCcwxrTxJ4L0siy63Ds/LA8LAM4szumTFiynxTJkfrIZEV4PyR4Th0CqFZQ+oNi8WvW3Dr1MLy7o9qPQ==} '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} @@ -2942,63 +2942,63 @@ packages: resolution: {integrity: sha512-TvCl79Y8v18ZhFGd5mjO1kYPovSBq3+4LVCi5Nfl1JI8fS8i8kXbgQFGwBJRXczim8GlW8c2LMBKTtExYXOy/A==} engines: {node: '>=18'} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.a684277': - resolution: {integrity: sha512-6RSChw4dFgDd+Q1h+tCMGSFFfwlJk9hWGb6CWUT7tpdbZ1SYDVhZg2dQKz5+/FRHm3z0Wj0mBdPKtByCm1h2Aw==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.30e0395': + resolution: {integrity: sha512-2o/ZF2nt59xOksx7WKxYcnuysv9SaMfCgIAUUltbCriZwhfu02Q2I71SNp/Uh/wJ/7zKbIiEEvunTkkEjWUqow==} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.a684277': - resolution: {integrity: sha512-KTxRz90z76iA14zeeOnKZ7k14plhr90mPQVNLVqR5JfEbrroIkja09FwyhNbV8v4gJ2QXa0Em9ddutN/aSd0mA==} + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.30e0395': + resolution: {integrity: sha512-SxlqmJ0dRHwPDRTUnZldVR3wtt1yZUKjMuorgoElFpLDpxGRN9C7wMUB88uw2R+LUkXHmGhgbQZc5TIWz+gi2A==} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.a684277': - resolution: {integrity: sha512-FtlZDJeokyS0kw1A2HWkiU85adMeVn6M6/JU20H5JodtWz84jPJ/tgwPDehplagmPpqiifyTxSxInK+VXA58jw==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.30e0395': + resolution: {integrity: sha512-XiBQRJbJmihXHruDUFloWG284y8ZLgUQrlnEOw5Kdz+wxvq1Kxz5aKf62Zrw3lvY8m6F8hBeE93ne2ZDHngQOA==} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.a684277': - resolution: {integrity: sha512-razlu8mK3r8hez86DCYEaTX9RDUfxDAk5nb/E5XoTmYoyfhhjnTnm9JLgxibC51xeCPJduul6CawU/xsdrbsCw==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.30e0395': + resolution: {integrity: sha512-tfVAzmJ/nkMSK2o4tDf/pLSuaXieOw+XjWkVqJUHoxt5wufno9tPApOBGEbjbnENkXdR4+1dlZfE0ZmCpdUdvw==} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.a684277': - resolution: {integrity: sha512-rx15jiqtmsr9khjVLPtF1wGSsBkMKNbcb4Fi4gMHGmUjgmvk+dF4XwUVewcVUnl0ogue0fM+ZlF1gSd8mq7PHw==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.30e0395': + resolution: {integrity: sha512-6myOJPi7rr29FPU0BNrNufYDCHR//JsFbZEgj4ykx/22TUUZaOKJoiLNBREplO7b4YCJ9+0pTvvuGTkvmp5esg==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.a684277': - resolution: {integrity: sha512-7x8j8WvSN6HLspQvsOCWkNDGjnCbIO5uaXzT6t/yiZODDyTzwDq6Ux9xhie247AepfWxtvlRu2jUfwQTMBqJyw==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.30e0395': + resolution: {integrity: sha512-VAJlT86fnUJBOwIpZ6Y9DQQDVZ6bYVJPWhGp4EVs3aQfyub/hOvd4RXiLSjaCIL3BafNZhZ+HtqHjIngWaiLwA==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.a684277': - resolution: {integrity: sha512-fmmNBHCYr0hxaMB+4dNQn4fEaUpILJ71mb8gMA+Jk0fUSExGLOeDoxxImMKmtCs869LCC3u3b++kaSlJmf/gUw==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.30e0395': + resolution: {integrity: sha512-myi+HoUkWSUqMLhVGf8pD6lsfx25TBm6mQcw7qIwXKcX6a0I1SFCHFL3qlqQtXhAdwGKi18M3e5Bz67PdQV5Dg==} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.a684277': - resolution: {integrity: sha512-W4X95Y2URGUJ9FyuHly8dp/T67UHGhlMRtDFCiYCo3vBeCq1Ozq3tj1blnQXwSBJitJ/4vFiIdw2SGXU9FWtNg==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.30e0395': + resolution: {integrity: sha512-CMfInIUDGY4y9JOfn30U6o7V9faT2zJs3kMshyaX3GSSmOg0QmvQlzAxWWMyIQKMXHIN0mnYQxPq9AhW2Yz1dg==} cpu: [x64] os: [linux] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.a684277': - resolution: {integrity: sha512-wifA0+3gITt8e8GEgDCOdEbyb0QH5oYVA6i2v2s0F9KRNXktyPoIEQrLWPIbIjgzxIC29yFBlZq0311srG3QNg==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.30e0395': + resolution: {integrity: sha512-EkjaSUFAAPBld7ojUmMKiSB1A7iWgLaAeSyJaO4m4oIHvzZLsTKmtFnJodT7TMl5IBtO4kpBeWc4v9J+A8MZGQ==} engines: {node: '>=14.21.3'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.a684277': - resolution: {integrity: sha512-y372uNfyfR6eQERWo0vQamTPWuyPK99rFgVnp2qgSW8UuFm4UUQK3WC//S1J/jMpBy6Q6zKjD3nRgDI6YNCSKQ==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.30e0395': + resolution: {integrity: sha512-It1vFY6GMg3Yx+rhYzuUa2nq5BY/z5hRT2NtjAOcp+DLOi5swWLoCNozA0QhGhESMnq9Nune71AKImCyIg8Peg==} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.a684277': - resolution: {integrity: sha512-dIuhUgM/oeBjbYhkCjU/jpNg51koTvoRxNyTn6PCgVLIImPEJ/einpQ/7l+VXsoh90qN+7bXdmGdyERVK1gYaw==} + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.30e0395': + resolution: {integrity: sha512-YSvkr4kb9RoiqObJZGEyYDB01Lf9jpqibFuFb/X9U/UAF/8lyYsjP18M/WD4inyoUBrDbh3wN0f38Una9FGKhQ==} cpu: [ia32] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.a684277': - resolution: {integrity: sha512-NCFGVU/tTQWLZSpCh4fBMakyEIG566quw0hJm/3Tl4M399gdDrL0JkIk2PgJzPm9jcy3ZqV+xsm92fv2ZKHnLg==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.30e0395': + resolution: {integrity: sha512-znpr7YScTNBki1u+/vk1jLl59/x+q2rrGCJYNm9o/KCOPZPIqCFy4+/y/SJo1eVa7QJdellTi5Z07Z/Bx/iViQ==} cpu: [x64] os: [win32] @@ -6796,11 +6796,11 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.7-commit.a684277: - resolution: {integrity: sha512-bniKhRZy9mL/TQNbhdo3R2/Ggs7OJ06oQbEa3JbvePShX/UOJT2uL5W3RSxxkIvYY0HdyQpX40yAYb8jvZHYag==} + rolldown@1.0.0-beta.7-commit.30e0395: + resolution: {integrity: sha512-io3+hz8Eh9wdbX8SaybkPWwo17PDVezp8qEjldCAqfVZ/jXM1xF3lTnwvgMiW0rgsZuPdPSZA7hhtKJ/x6aq8g==} hasBin: true peerDependencies: - '@oxc-project/runtime': 0.64.0 + '@oxc-project/runtime': 0.65.0 peerDependenciesMeta: '@oxc-project/runtime': optional: true @@ -8990,9 +8990,9 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.0 - '@oxc-project/runtime@0.64.0': {} + '@oxc-project/runtime@0.65.0': {} - '@oxc-project/types@0.64.0': {} + '@oxc-project/types@0.65.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -9066,42 +9066,42 @@ snapshots: '@publint/pack@0.1.1': {} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.a684277': + '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.30e0395': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.a684277': + '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.30e0395': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.a684277': + '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.30e0395': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.a684277': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.30e0395': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.a684277': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.30e0395': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.a684277': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.30e0395': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.a684277': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.30e0395': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.a684277': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.30e0395': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.a684277': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.30e0395': dependencies: '@napi-rs/wasm-runtime': 0.2.9 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.a684277': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.30e0395': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.a684277': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.30e0395': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.a684277': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.30e0395': optional: true '@rollup/plugin-alias@5.1.1(rollup@4.34.9)': @@ -13082,26 +13082,26 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.7-commit.a684277(@oxc-project/runtime@0.64.0)(typescript@5.7.3): + rolldown@1.0.0-beta.7-commit.30e0395(@oxc-project/runtime@0.65.0)(typescript@5.7.3): dependencies: - '@oxc-project/types': 0.64.0 + '@oxc-project/types': 0.65.0 '@valibot/to-json-schema': 1.0.0(valibot@1.0.0(typescript@5.7.3)) ansis: 3.17.0 valibot: 1.0.0(typescript@5.7.3) optionalDependencies: - '@oxc-project/runtime': 0.64.0 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.a684277 - '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.a684277 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.a684277 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.a684277 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.a684277 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.a684277 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.a684277 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.a684277 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.a684277 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.a684277 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.a684277 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.a684277 + '@oxc-project/runtime': 0.65.0 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.30e0395 + '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.30e0395 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.30e0395 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.30e0395 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.30e0395 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.30e0395 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.30e0395 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.30e0395 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.30e0395 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.30e0395 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.30e0395 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.30e0395 transitivePeerDependencies: - typescript From 702b6acefa0f62458bb2c23814a816fe511afe01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Tue, 22 Apr 2025 19:35:26 +0900 Subject: [PATCH 075/102] feat: add backward compat and warning for esbuild.banner/footer (#135) --- packages/vite/src/node/config.ts | 2 +- .../esbuildBannerFooterCompatPlugin.ts | 61 +++++++++++++++++++ packages/vite/src/node/plugins/index.ts | 2 + packages/vite/src/node/plugins/oxc.ts | 24 ++++++++ 4 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 packages/vite/src/node/plugins/esbuildBannerFooterCompatPlugin.ts diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index 306913bd3fb3d6..f80f9e06a14204 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -1645,7 +1645,7 @@ export async function resolveConfig( ), ) } else { - oxc = convertEsbuildConfigToOxcConfig(config.esbuild) + oxc = convertEsbuildConfigToOxcConfig(config.esbuild, logger) } } diff --git a/packages/vite/src/node/plugins/esbuildBannerFooterCompatPlugin.ts b/packages/vite/src/node/plugins/esbuildBannerFooterCompatPlugin.ts new file mode 100644 index 00000000000000..587a293e023deb --- /dev/null +++ b/packages/vite/src/node/plugins/esbuildBannerFooterCompatPlugin.ts @@ -0,0 +1,61 @@ +import MagicString from 'magic-string' +import type { Plugin } from '../plugin' +import type { ResolvedConfig } from '../config' +import { createFilter } from '../utils' +import { cleanUrl } from '../../shared/utils' + +/** + * This plugin supports `esbuild.banner` and `esbuild.footer` options. + * esbuild supported these options and Vite exposed them. + * But this should be done by plugin with transform hook. + * This plugin makes these options work in rolldown-vite as a backward compat for now. + */ +export function esbuildBannerFooterCompatPlugin( + config: ResolvedConfig, +): Plugin | undefined { + const options = config.esbuild + if (!options) return + + const { include, exclude, banner, footer } = options + if (!banner && !footer) return + + const filter = createFilter(include || /\.(m?ts|[jt]sx)$/, exclude || /\.js$/) + + return { + name: 'vite:esbuild-banner-footer-compat', + transform(code, id) { + if (filter(id) || filter(cleanUrl(id))) { + const needsSourcemap = + this.environment.mode === 'dev' || + (this.environment.mode === 'build' && + this.environment.config.build.sourcemap) + if (!needsSourcemap) { + if (banner) { + code = `${banner}\n${code}` + } + if (footer) { + code = `${code}\n${footer}` + } + return code + } + + let s: MagicString | undefined + const str = () => s || (s = new MagicString(code)) + + if (banner) { + str().prepend(`${banner}\n`) + } + if (footer) { + str().append(`${footer}\n`) + } + + if (s) { + return { + code: s.toString(), + map: s.generateMap({ hires: 'boundary' }), + } + } + } + }, + } +} diff --git a/packages/vite/src/node/plugins/index.ts b/packages/vite/src/node/plugins/index.ts index 15274a229fa237..67c25f97aaa0c3 100644 --- a/packages/vite/src/node/plugins/index.ts +++ b/packages/vite/src/node/plugins/index.ts @@ -42,6 +42,7 @@ import { createIdFilter, } from './pluginFilter' import { oxcPlugin } from './oxc' +import { esbuildBannerFooterCompatPlugin } from './esbuildBannerFooterCompatPlugin' export async function resolvePlugins( config: ResolvedConfig, @@ -121,6 +122,7 @@ export async function resolvePlugins( ]), htmlInlineProxyPlugin(config), cssPlugin(config), + esbuildBannerFooterCompatPlugin(config), config.oxc !== false ? enableNativePlugin === true ? nativeTransformPlugin() diff --git a/packages/vite/src/node/plugins/oxc.ts b/packages/vite/src/node/plugins/oxc.ts index 573b0782af74d1..2518ba1ddf9462 100644 --- a/packages/vite/src/node/plugins/oxc.ts +++ b/packages/vite/src/node/plugins/oxc.ts @@ -10,6 +10,7 @@ import type { InternalModuleFormat, RollupError, SourceMap } from 'rolldown' import { rolldown } from 'rolldown' import type { FSWatcher } from 'dep-types/chokidar' import { TSConfckParseError } from 'tsconfck' +import colors from 'picocolors' import { combineSourcemaps, createFilter, @@ -23,6 +24,7 @@ import { cleanUrl } from '../../shared/utils' import type { Environment } from '..' import type { ViteDevServer } from '../server' import { JS_TYPES_RE } from '../constants' +import type { Logger } from '../logger' import type { ESBuildOptions } from './esbuild' import { loadTsconfigJsonForFile } from './esbuild' @@ -564,6 +566,7 @@ type OxcJsxOptions = Exclude export function convertEsbuildConfigToOxcConfig( esbuildConfig: ESBuildOptions, + logger: Logger, ): OxcOptions { const { jsxInject, include, exclude, ...esbuildTransformOptions } = esbuildConfig @@ -610,5 +613,26 @@ export function convertEsbuildConfigToOxcConfig( oxcOptions.define = esbuildTransformOptions.define } + // these backward compat are supported by esbuildBannerFooterCompatPlugin + if (esbuildTransformOptions.banner) { + warnDeprecatedShouldBeConvertedToPluginOptions(logger, 'banner') + } + if (esbuildTransformOptions.footer) { + warnDeprecatedShouldBeConvertedToPluginOptions(logger, 'footer') + } + return oxcOptions } + +function warnDeprecatedShouldBeConvertedToPluginOptions( + logger: Logger, + name: string, +) { + logger.warn( + colors.yellow( + `\`esbuild.${name}\` option was specified. ` + + `But this option is deprecated and will be removed in future versions. ` + + 'This option can be achieved by using a plugin with transform hook, please use that instead.', + ), + ) +} From c3d7d05d3e01a9bbbe911fe6068e613c1e707800 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Tue, 22 Apr 2025 19:37:12 +0900 Subject: [PATCH 076/102] release: v6.3.3 --- packages/create-vite/template-lit-ts/package.json | 2 +- packages/create-vite/template-lit/package.json | 2 +- packages/create-vite/template-preact-ts/package.json | 2 +- packages/create-vite/template-preact/package.json | 2 +- packages/create-vite/template-qwik-ts/package.json | 2 +- packages/create-vite/template-qwik/package.json | 2 +- packages/create-vite/template-react-ts/package.json | 2 +- packages/create-vite/template-react/package.json | 2 +- packages/create-vite/template-solid-ts/package.json | 2 +- packages/create-vite/template-solid/package.json | 2 +- packages/create-vite/template-svelte-ts/package.json | 2 +- packages/create-vite/template-svelte/package.json | 2 +- packages/create-vite/template-vanilla-ts/package.json | 2 +- packages/create-vite/template-vanilla/package.json | 2 +- packages/create-vite/template-vue-ts/package.json | 2 +- packages/create-vite/template-vue/package.json | 2 +- packages/vite/CHANGELOG.md | 7 +++++++ packages/vite/package.json | 2 +- 18 files changed, 24 insertions(+), 17 deletions(-) diff --git a/packages/create-vite/template-lit-ts/package.json b/packages/create-vite/template-lit-ts/package.json index 0d2a6b4f41ef32..cd768f4698f55a 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": "npm:rolldown-vite@^6.3.2" + "vite": "npm:rolldown-vite@^6.3.3" } } diff --git a/packages/create-vite/template-lit/package.json b/packages/create-vite/template-lit/package.json index 682c4c39fb421a..08d412db0942d7 100644 --- a/packages/create-vite/template-lit/package.json +++ b/packages/create-vite/template-lit/package.json @@ -12,6 +12,6 @@ "lit": "^3.3.0" }, "devDependencies": { - "vite": "npm:rolldown-vite@^6.3.2" + "vite": "npm:rolldown-vite@^6.3.3" } } diff --git a/packages/create-vite/template-preact-ts/package.json b/packages/create-vite/template-preact-ts/package.json index 69f6d6aa5adbb7..d6a27e303da309 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": "npm:rolldown-vite@^6.3.2" + "vite": "npm:rolldown-vite@^6.3.3" } } diff --git a/packages/create-vite/template-preact/package.json b/packages/create-vite/template-preact/package.json index d27636d9a436a2..fdc3fbeb1bf1a4 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": "npm:rolldown-vite@^6.3.2" + "vite": "npm:rolldown-vite@^6.3.3" } } diff --git a/packages/create-vite/template-qwik-ts/package.json b/packages/create-vite/template-qwik-ts/package.json index c3fff4ef953ac7..8e8122d3ea00fc 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": "npm:rolldown-vite@^6.3.2" + "vite": "npm:rolldown-vite@^6.3.3" }, "dependencies": { "@builder.io/qwik": "^1.13.0" diff --git a/packages/create-vite/template-qwik/package.json b/packages/create-vite/template-qwik/package.json index b42d5d34e8f5ea..9e7c9863e6fff4 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": "npm:rolldown-vite@^6.3.2" + "vite": "npm:rolldown-vite@^6.3.3" }, "dependencies": { "@builder.io/qwik": "^1.13.0" diff --git a/packages/create-vite/template-react-ts/package.json b/packages/create-vite/template-react-ts/package.json index d1c9dfe932824c..5d34d4a6241b20 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.30.1", - "vite": "npm:rolldown-vite@^6.3.2" + "vite": "npm:rolldown-vite@^6.3.3" } } diff --git a/packages/create-vite/template-react/package.json b/packages/create-vite/template-react/package.json index 11d07b26e06076..f6f6cd0a64226d 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": "npm:rolldown-vite@^6.3.2" + "vite": "npm:rolldown-vite@^6.3.3" } } diff --git a/packages/create-vite/template-solid-ts/package.json b/packages/create-vite/template-solid-ts/package.json index b8bbe82ac130b3..998364d8c2b632 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": "npm:rolldown-vite@^6.3.2", + "vite": "npm:rolldown-vite@^6.3.3", "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 147e02d9a258d1..d6eb582f33c229 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": "npm:rolldown-vite@^6.3.2", + "vite": "npm:rolldown-vite@^6.3.3", "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 4a34d4e37c22a8..388b22ace950a6 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.27.0", "svelte-check": "^4.1.6", "typescript": "~5.7.2", - "vite": "npm:rolldown-vite@^6.3.2" + "vite": "npm:rolldown-vite@^6.3.3" } } diff --git a/packages/create-vite/template-svelte/package.json b/packages/create-vite/template-svelte/package.json index 5dd49f634453b8..963dfe2ce5ee13 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.27.0", - "vite": "npm:rolldown-vite@^6.3.2" + "vite": "npm:rolldown-vite@^6.3.3" } } diff --git a/packages/create-vite/template-vanilla-ts/package.json b/packages/create-vite/template-vanilla-ts/package.json index 36acbb765b7929..cd769b049ea508 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": "npm:rolldown-vite@^6.3.2" + "vite": "npm:rolldown-vite@^6.3.3" } } diff --git a/packages/create-vite/template-vanilla/package.json b/packages/create-vite/template-vanilla/package.json index 90a41b242c25d0..5b09fce2258f5a 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": "npm:rolldown-vite@^6.3.2" + "vite": "npm:rolldown-vite@^6.3.3" } } diff --git a/packages/create-vite/template-vue-ts/package.json b/packages/create-vite/template-vue-ts/package.json index 6c6f1210b19d28..fcda8d34db090e 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.3", "@vue/tsconfig": "^0.7.0", "typescript": "~5.7.2", - "vite": "npm:rolldown-vite@^6.3.2", + "vite": "npm:rolldown-vite@^6.3.3", "vue-tsc": "^2.2.8" } } diff --git a/packages/create-vite/template-vue/package.json b/packages/create-vite/template-vue/package.json index f9ec26967e4164..3968d737ae43d4 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.3", - "vite": "npm:rolldown-vite@^6.3.2" + "vite": "npm:rolldown-vite@^6.3.3" } } diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index 821faf2e1eaf85..ebc29df9508f4e 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,10 @@ +## 6.3.3 (2025-04-22) + +* feat: add backward compat and warning for esbuild.banner/footer (#135) ([702b6ac](https://github.com/vitejs/rolldown-vite/commit/702b6ac)), closes [#135](https://github.com/vitejs/rolldown-vite/issues/135) +* feat: update rolldown ([cd8aa76](https://github.com/vitejs/rolldown-vite/commit/cd8aa76)) + + + ## 6.3.2 (2025-04-21) * fix(oxc): correctly type oxc options (#131) ([bc90a9e](https://github.com/vitejs/rolldown-vite/commit/bc90a9e)), closes [#131](https://github.com/vitejs/rolldown-vite/issues/131) diff --git a/packages/vite/package.json b/packages/vite/package.json index e48c6e43200cc6..b13d32c222a92b 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "rolldown-vite", - "version": "6.3.2", + "version": "6.3.3", "type": "module", "license": "MIT", "author": "Evan You", From 233b7bff5c4ce9c554722c9915c2a7877ccb2711 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Wed, 23 Apr 2025 13:49:27 +0900 Subject: [PATCH 077/102] feat: update rolldown --- packages/vite/package.json | 2 +- pnpm-lock.yaml | 106 ++++++++++++++++++------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index b13d32c222a92b..1d26bfe26e0d35 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -90,7 +90,7 @@ "lightningcss": "^1.29.3", "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rolldown": "1.0.0-beta.7-commit.30e0395", + "rolldown": "1.0.0-beta.8-commit.d53650c", "tinyglobby": "^0.2.12" }, "optionalDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 78bb5a679f980c..2399ae427b95b6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -239,8 +239,8 @@ importers: specifier: ^8.5.3 version: 8.5.3 rolldown: - specifier: 1.0.0-beta.7-commit.30e0395 - version: 1.0.0-beta.7-commit.30e0395(@oxc-project/runtime@0.65.0)(typescript@5.7.3) + specifier: 1.0.0-beta.8-commit.d53650c + version: 1.0.0-beta.8-commit.d53650c(@oxc-project/runtime@0.65.0)(typescript@5.7.3) tinyglobby: specifier: ^0.2.12 version: 0.2.12 @@ -2942,63 +2942,63 @@ packages: resolution: {integrity: sha512-TvCl79Y8v18ZhFGd5mjO1kYPovSBq3+4LVCi5Nfl1JI8fS8i8kXbgQFGwBJRXczim8GlW8c2LMBKTtExYXOy/A==} engines: {node: '>=18'} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.30e0395': - resolution: {integrity: sha512-2o/ZF2nt59xOksx7WKxYcnuysv9SaMfCgIAUUltbCriZwhfu02Q2I71SNp/Uh/wJ/7zKbIiEEvunTkkEjWUqow==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.d53650c': + resolution: {integrity: sha512-C2YSfcGBAffz57TiymNfElDJs314NYdyiNRT7AOPrAIH9Cmmj3sjQNCORuCZv2m7R+omC4MGqR6Jv8U5yxe/OA==} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.30e0395': - resolution: {integrity: sha512-SxlqmJ0dRHwPDRTUnZldVR3wtt1yZUKjMuorgoElFpLDpxGRN9C7wMUB88uw2R+LUkXHmGhgbQZc5TIWz+gi2A==} + '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.d53650c': + resolution: {integrity: sha512-F83mKqDgN3E96Tnxo5ug+ex8W9gZ1tSdM5t7MQO9ymrvIaK1KhAqd0ST6TrkpTxhYvpMEPhWHGk/iN9914yEQQ==} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.30e0395': - resolution: {integrity: sha512-XiBQRJbJmihXHruDUFloWG284y8ZLgUQrlnEOw5Kdz+wxvq1Kxz5aKf62Zrw3lvY8m6F8hBeE93ne2ZDHngQOA==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.d53650c': + resolution: {integrity: sha512-k4RMNsQv69/h9SV4HaOWOA2Kirx+VTi3+i7aHDfaAHllDMEcJ5eYsyDk/8nUTiwvZ3IgKPum2mjEBOmylc1jHQ==} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.30e0395': - resolution: {integrity: sha512-tfVAzmJ/nkMSK2o4tDf/pLSuaXieOw+XjWkVqJUHoxt5wufno9tPApOBGEbjbnENkXdR4+1dlZfE0ZmCpdUdvw==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.d53650c': + resolution: {integrity: sha512-fVLfIFsYsZ3SBGgqsBT0lN5C+sUvJwkAcnmrkMmOTIU5dIwabDTThiOmYrsgHH0B5FHTDHWa9VTUHsbgOo3kyw==} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.30e0395': - resolution: {integrity: sha512-6myOJPi7rr29FPU0BNrNufYDCHR//JsFbZEgj4ykx/22TUUZaOKJoiLNBREplO7b4YCJ9+0pTvvuGTkvmp5esg==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.d53650c': + resolution: {integrity: sha512-zYJVxg2NQmfJjsgk+VhKSGlTwT8AWgdnqQhxMBTRuM2Qa3nyCnCTxtyqNWDKhRA6wpzwdsFpb6n2IKXa8pJcsw==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.30e0395': - resolution: {integrity: sha512-VAJlT86fnUJBOwIpZ6Y9DQQDVZ6bYVJPWhGp4EVs3aQfyub/hOvd4RXiLSjaCIL3BafNZhZ+HtqHjIngWaiLwA==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.d53650c': + resolution: {integrity: sha512-nkfKpOEkcFp2QQ5R9DiA9jNLjkK1WkD9RakJtAEgieaj+AZutGxsQvzMFxGp8gybrGJa/NXgVBaF8oSMy2xJ+Q==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.30e0395': - resolution: {integrity: sha512-myi+HoUkWSUqMLhVGf8pD6lsfx25TBm6mQcw7qIwXKcX6a0I1SFCHFL3qlqQtXhAdwGKi18M3e5Bz67PdQV5Dg==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.d53650c': + resolution: {integrity: sha512-6S2ntGX4asGKNx8x2hH4XI8PGG4sKm6NGJVrdjxuvcAqgoKlJUjft74Bs/8hnNbGvRe6u0TIGz22EVPr1iaM1A==} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.30e0395': - resolution: {integrity: sha512-CMfInIUDGY4y9JOfn30U6o7V9faT2zJs3kMshyaX3GSSmOg0QmvQlzAxWWMyIQKMXHIN0mnYQxPq9AhW2Yz1dg==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.d53650c': + resolution: {integrity: sha512-NsTD/0B92u5BOVqD9ydgBTOIACOHt1s0FGQ6H8yE8GOkligPPCqJ797frH8IbU3TZ+OTCHLGLdyQYTC2PJG7ag==} cpu: [x64] os: [linux] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.30e0395': - resolution: {integrity: sha512-EkjaSUFAAPBld7ojUmMKiSB1A7iWgLaAeSyJaO4m4oIHvzZLsTKmtFnJodT7TMl5IBtO4kpBeWc4v9J+A8MZGQ==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.d53650c': + resolution: {integrity: sha512-LK4Z+LpzVLhW4Te4yWCP4wBpIQFNGwRrUvi/PhqQ19warpP1El/sn+2h2YIvBzv5UsRlCgFPhdeMvuTD6EPkpg==} engines: {node: '>=14.21.3'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.30e0395': - resolution: {integrity: sha512-It1vFY6GMg3Yx+rhYzuUa2nq5BY/z5hRT2NtjAOcp+DLOi5swWLoCNozA0QhGhESMnq9Nune71AKImCyIg8Peg==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.d53650c': + resolution: {integrity: sha512-39OzCONG2Nnyr0+ZtJPYg2I1b+lyzOXmdhvLCY1b4vms1gL3p4cITFcy4DxP8aBMcJf8rep90ayMkoDikX9evQ==} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.30e0395': - resolution: {integrity: sha512-YSvkr4kb9RoiqObJZGEyYDB01Lf9jpqibFuFb/X9U/UAF/8lyYsjP18M/WD4inyoUBrDbh3wN0f38Una9FGKhQ==} + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.d53650c': + resolution: {integrity: sha512-5jN7MyjjUcu/VFbtf8KnfifkmolyFDHIJ1n79Wne7F57C0sgUpJCjtyjnN57jB8Hd7m7SoHDdKGYpAHVwQvNkg==} cpu: [ia32] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.30e0395': - resolution: {integrity: sha512-znpr7YScTNBki1u+/vk1jLl59/x+q2rrGCJYNm9o/KCOPZPIqCFy4+/y/SJo1eVa7QJdellTi5Z07Z/Bx/iViQ==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.d53650c': + resolution: {integrity: sha512-0dZpFewWIOb9K4xBfcurUNdIdpVM1e6KdMDQ8Iiut/Dy4nRlUAEpVsJFJOphaYW3fpIVmZ5eJjhbVAe5aDeZNw==} cpu: [x64] os: [win32] @@ -6796,8 +6796,8 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.7-commit.30e0395: - resolution: {integrity: sha512-io3+hz8Eh9wdbX8SaybkPWwo17PDVezp8qEjldCAqfVZ/jXM1xF3lTnwvgMiW0rgsZuPdPSZA7hhtKJ/x6aq8g==} + rolldown@1.0.0-beta.8-commit.d53650c: + resolution: {integrity: sha512-GVHSJrd2ObJV64H6frLgDZwAydsKL5wyPKE7nEEl1U8QMx2O9HsQyLk1sI4uZQfGbmfIFR32QpS/fdv6jd+a2A==} hasBin: true peerDependencies: '@oxc-project/runtime': 0.65.0 @@ -9066,42 +9066,42 @@ snapshots: '@publint/pack@0.1.1': {} - '@rolldown/binding-darwin-arm64@1.0.0-beta.7-commit.30e0395': + '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.d53650c': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.7-commit.30e0395': + '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.d53650c': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.7-commit.30e0395': + '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.d53650c': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.7-commit.30e0395': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.d53650c': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.7-commit.30e0395': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.d53650c': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.7-commit.30e0395': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.d53650c': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.7-commit.30e0395': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.d53650c': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.7-commit.30e0395': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.d53650c': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.7-commit.30e0395': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.d53650c': dependencies: '@napi-rs/wasm-runtime': 0.2.9 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.7-commit.30e0395': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.d53650c': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.7-commit.30e0395': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.d53650c': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.7-commit.30e0395': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.d53650c': optional: true '@rollup/plugin-alias@5.1.1(rollup@4.34.9)': @@ -13082,7 +13082,7 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.7-commit.30e0395(@oxc-project/runtime@0.65.0)(typescript@5.7.3): + rolldown@1.0.0-beta.8-commit.d53650c(@oxc-project/runtime@0.65.0)(typescript@5.7.3): dependencies: '@oxc-project/types': 0.65.0 '@valibot/to-json-schema': 1.0.0(valibot@1.0.0(typescript@5.7.3)) @@ -13090,18 +13090,18 @@ snapshots: valibot: 1.0.0(typescript@5.7.3) optionalDependencies: '@oxc-project/runtime': 0.65.0 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.7-commit.30e0395 - '@rolldown/binding-darwin-x64': 1.0.0-beta.7-commit.30e0395 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.7-commit.30e0395 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.7-commit.30e0395 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.7-commit.30e0395 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.7-commit.30e0395 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.7-commit.30e0395 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.7-commit.30e0395 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.7-commit.30e0395 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.7-commit.30e0395 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.7-commit.30e0395 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.7-commit.30e0395 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.8-commit.d53650c + '@rolldown/binding-darwin-x64': 1.0.0-beta.8-commit.d53650c + '@rolldown/binding-freebsd-x64': 1.0.0-beta.8-commit.d53650c + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.8-commit.d53650c + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.8-commit.d53650c + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.8-commit.d53650c + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.8-commit.d53650c + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.8-commit.d53650c + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.8-commit.d53650c + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.8-commit.d53650c + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.8-commit.d53650c + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.8-commit.d53650c transitivePeerDependencies: - typescript From e5fa092c8d8eff2f4aca603094fd27ccd04431c3 Mon Sep 17 00:00:00 2001 From: dalaoshu Date: Wed, 23 Apr 2025 13:25:01 +0800 Subject: [PATCH 078/102] feat(native-plugin): adapt to the new native `transformPlugin` (#136) --- packages/vite/src/node/plugins/index.ts | 38 +++++++++++++++++++++++-- packages/vite/src/node/plugins/oxc.ts | 4 +-- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/packages/vite/src/node/plugins/index.ts b/packages/vite/src/node/plugins/index.ts index 67c25f97aaa0c3..a973d09b089cd7 100644 --- a/packages/vite/src/node/plugins/index.ts +++ b/packages/vite/src/node/plugins/index.ts @@ -1,5 +1,7 @@ +import url from 'node:url' import aliasPlugin, { type ResolverFunction } from '@rollup/plugin-alias' import type { ObjectHook } from 'rolldown' +import type { TransformOptions as OxcTransformOptions } from 'rolldown/experimental' import { aliasPlugin as nativeAliasPlugin, dynamicImportVarsPlugin as nativeDynamicImportVarsPlugin, @@ -18,6 +20,7 @@ import { perEnvironmentPlugin, } from '../plugin' import { watchPackageDataPlugin } from '../packages' +import { normalizePath } from '../utils' import { jsonPlugin } from './json' import { oxcResolvePlugin, resolvePlugin } from './resolve' import { optimizedDepsPlugin } from './optimizedDeps' @@ -41,7 +44,7 @@ import { createFilterForTransform, createIdFilter, } from './pluginFilter' -import { oxcPlugin } from './oxc' +import { type OxcOptions, oxcPlugin } from './oxc' import { esbuildBannerFooterCompatPlugin } from './esbuildBannerFooterCompatPlugin' export async function resolvePlugins( @@ -125,7 +128,38 @@ export async function resolvePlugins( esbuildBannerFooterCompatPlugin(config), config.oxc !== false ? enableNativePlugin === true - ? nativeTransformPlugin() + ? perEnvironmentPlugin('native:transform', (environment) => { + const { + jsxInject, + include = /\.(m?ts|[jt]sx)$/, + exclude = /\.js$/, + jsxRefreshInclude, + jsxRefreshExclude, + ..._transformOptions + } = config.oxc as Exclude + + const transformOptions: OxcTransformOptions = _transformOptions + transformOptions.sourcemap = + environment.config.mode !== 'build' || + !!environment.config.build.sourcemap + + return nativeTransformPlugin({ + // @ts-expect-error https://github.com/rolldown/rolldown/pull/4266 + include, + // @ts-expect-error https://github.com/rolldown/rolldown/pull/4266 + exclude, + // @ts-expect-error https://github.com/rolldown/rolldown/pull/4266 + jsxRefreshInclude, + // @ts-expect-error https://github.com/rolldown/rolldown/pull/4266 + jsxRefreshExclude, + isServerConsumer: environment.config.consumer === 'server', + runtimeResolveBase: normalizePath( + url.fileURLToPath(import.meta.url), + ), + jsxInject, + transformOptions, + }) + }) : oxcPlugin(config) : null, enableNativePlugin === true diff --git a/packages/vite/src/node/plugins/oxc.ts b/packages/vite/src/node/plugins/oxc.ts index 2518ba1ddf9462..42d34524908aa5 100644 --- a/packages/vite/src/node/plugins/oxc.ts +++ b/packages/vite/src/node/plugins/oxc.ts @@ -343,7 +343,7 @@ export function oxcPlugin(config: ResolvedConfig): Plugin { return result } - const _filename = normalizePath(url.fileURLToPath(import.meta.url)) + const runtimeResolveBase = normalizePath(url.fileURLToPath(import.meta.url)) let server: ViteDevServer @@ -359,7 +359,7 @@ export function oxcPlugin(config: ResolvedConfig): Plugin { async handler(id, _importer, opts) { // @oxc-project/runtime imports will be injected by OXC transform // since it's injected by the transform, @oxc-project/runtime should be resolved to the one Vite depends on - const resolved = await this.resolve(id, _filename, opts) + const resolved = await this.resolve(id, runtimeResolveBase, opts) return resolved }, }, From 3c6c85f20607e7812b46cf41e02fd9357abc1f73 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Wed, 23 Apr 2025 14:33:21 +0900 Subject: [PATCH 079/102] chore: remove code to suppress minify warning --- vitest.config.e2e.ts | 4 ---- vitest.config.ts | 4 ---- 2 files changed, 8 deletions(-) diff --git a/vitest.config.e2e.ts b/vitest.config.e2e.ts index 98e9803bc614ae..7671a1cdd4c2c2 100644 --- a/vitest.config.e2e.ts +++ b/vitest.config.e2e.ts @@ -32,10 +32,6 @@ export default defineConfig({ // Prevent Vitest from running the workspace packages in Vite's SSR runtime moduleDirectories: ['node_modules', 'packages'], }, - onConsoleLog(log) { - if (log.includes('The built-in minifier is still under development')) - return false - }, }, esbuild: { target: 'node18', diff --git a/vitest.config.ts b/vitest.config.ts index 563d0b294bc86b..2913b941653a06 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -23,10 +23,6 @@ export default defineConfig({ // as it can be seen from tsx (try pnpm exec tsx packages/vite/src/node/server/index.ts). // we can use `setupFiles` to ensure the modules are evaluated via main node entry. setupFiles: ['./packages/vite/src/node/index.ts'], - onConsoleLog(log) { - if (log.includes('The built-in minifier is still under development')) - return false - }, }, esbuild: { target: 'node18', From 91a494cb70c0fe21222261878770b23500e9ef41 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Wed, 23 Apr 2025 14:40:28 +0900 Subject: [PATCH 080/102] release: v6.3.4 --- packages/create-vite/template-lit-ts/package.json | 2 +- packages/create-vite/template-lit/package.json | 2 +- packages/create-vite/template-preact-ts/package.json | 2 +- packages/create-vite/template-preact/package.json | 2 +- packages/create-vite/template-qwik-ts/package.json | 2 +- packages/create-vite/template-qwik/package.json | 2 +- packages/create-vite/template-react-ts/package.json | 2 +- packages/create-vite/template-react/package.json | 2 +- packages/create-vite/template-solid-ts/package.json | 2 +- packages/create-vite/template-solid/package.json | 2 +- packages/create-vite/template-svelte-ts/package.json | 2 +- packages/create-vite/template-svelte/package.json | 2 +- packages/create-vite/template-vanilla-ts/package.json | 2 +- packages/create-vite/template-vanilla/package.json | 2 +- packages/create-vite/template-vue-ts/package.json | 2 +- packages/create-vite/template-vue/package.json | 2 +- packages/vite/CHANGELOG.md | 7 +++++++ packages/vite/package.json | 2 +- 18 files changed, 24 insertions(+), 17 deletions(-) diff --git a/packages/create-vite/template-lit-ts/package.json b/packages/create-vite/template-lit-ts/package.json index cd768f4698f55a..34aa69000d26de 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": "npm:rolldown-vite@^6.3.3" + "vite": "npm:rolldown-vite@^6.3.4" } } diff --git a/packages/create-vite/template-lit/package.json b/packages/create-vite/template-lit/package.json index 08d412db0942d7..c50389a9816d59 100644 --- a/packages/create-vite/template-lit/package.json +++ b/packages/create-vite/template-lit/package.json @@ -12,6 +12,6 @@ "lit": "^3.3.0" }, "devDependencies": { - "vite": "npm:rolldown-vite@^6.3.3" + "vite": "npm:rolldown-vite@^6.3.4" } } diff --git a/packages/create-vite/template-preact-ts/package.json b/packages/create-vite/template-preact-ts/package.json index d6a27e303da309..71484fb88c99ab 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": "npm:rolldown-vite@^6.3.3" + "vite": "npm:rolldown-vite@^6.3.4" } } diff --git a/packages/create-vite/template-preact/package.json b/packages/create-vite/template-preact/package.json index fdc3fbeb1bf1a4..ece8d1f5634504 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": "npm:rolldown-vite@^6.3.3" + "vite": "npm:rolldown-vite@^6.3.4" } } diff --git a/packages/create-vite/template-qwik-ts/package.json b/packages/create-vite/template-qwik-ts/package.json index 8e8122d3ea00fc..d87fbd024adc9a 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": "npm:rolldown-vite@^6.3.3" + "vite": "npm:rolldown-vite@^6.3.4" }, "dependencies": { "@builder.io/qwik": "^1.13.0" diff --git a/packages/create-vite/template-qwik/package.json b/packages/create-vite/template-qwik/package.json index 9e7c9863e6fff4..9b0f0a26780b33 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": "npm:rolldown-vite@^6.3.3" + "vite": "npm:rolldown-vite@^6.3.4" }, "dependencies": { "@builder.io/qwik": "^1.13.0" diff --git a/packages/create-vite/template-react-ts/package.json b/packages/create-vite/template-react-ts/package.json index 5d34d4a6241b20..6fd87be769e4a4 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.30.1", - "vite": "npm:rolldown-vite@^6.3.3" + "vite": "npm:rolldown-vite@^6.3.4" } } diff --git a/packages/create-vite/template-react/package.json b/packages/create-vite/template-react/package.json index f6f6cd0a64226d..96a757fcb3413a 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": "npm:rolldown-vite@^6.3.3" + "vite": "npm:rolldown-vite@^6.3.4" } } diff --git a/packages/create-vite/template-solid-ts/package.json b/packages/create-vite/template-solid-ts/package.json index 998364d8c2b632..145eb0155e889e 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": "npm:rolldown-vite@^6.3.3", + "vite": "npm:rolldown-vite@^6.3.4", "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 d6eb582f33c229..01bc423d482add 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": "npm:rolldown-vite@^6.3.3", + "vite": "npm:rolldown-vite@^6.3.4", "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 388b22ace950a6..85e2924810bc94 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.27.0", "svelte-check": "^4.1.6", "typescript": "~5.7.2", - "vite": "npm:rolldown-vite@^6.3.3" + "vite": "npm:rolldown-vite@^6.3.4" } } diff --git a/packages/create-vite/template-svelte/package.json b/packages/create-vite/template-svelte/package.json index 963dfe2ce5ee13..21bc23c102f8c6 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.27.0", - "vite": "npm:rolldown-vite@^6.3.3" + "vite": "npm:rolldown-vite@^6.3.4" } } diff --git a/packages/create-vite/template-vanilla-ts/package.json b/packages/create-vite/template-vanilla-ts/package.json index cd769b049ea508..adcdd41095233b 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": "npm:rolldown-vite@^6.3.3" + "vite": "npm:rolldown-vite@^6.3.4" } } diff --git a/packages/create-vite/template-vanilla/package.json b/packages/create-vite/template-vanilla/package.json index 5b09fce2258f5a..39135873034f49 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": "npm:rolldown-vite@^6.3.3" + "vite": "npm:rolldown-vite@^6.3.4" } } diff --git a/packages/create-vite/template-vue-ts/package.json b/packages/create-vite/template-vue-ts/package.json index fcda8d34db090e..50f2542ea8f652 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.3", "@vue/tsconfig": "^0.7.0", "typescript": "~5.7.2", - "vite": "npm:rolldown-vite@^6.3.3", + "vite": "npm:rolldown-vite@^6.3.4", "vue-tsc": "^2.2.8" } } diff --git a/packages/create-vite/template-vue/package.json b/packages/create-vite/template-vue/package.json index 3968d737ae43d4..826353e174e43f 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.3", - "vite": "npm:rolldown-vite@^6.3.3" + "vite": "npm:rolldown-vite@^6.3.4" } } diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index ebc29df9508f4e..8f053b7d179b9f 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,10 @@ +## 6.3.4 (2025-04-23) + +* feat: update rolldown ([233b7bf](https://github.com/vitejs/rolldown-vite/commit/233b7bf)) +* feat(native-plugin): adapt to the new native `transformPlugin` (#136) ([e5fa092](https://github.com/vitejs/rolldown-vite/commit/e5fa092)), closes [#136](https://github.com/vitejs/rolldown-vite/issues/136) + + + ## 6.3.3 (2025-04-22) * feat: add backward compat and warning for esbuild.banner/footer (#135) ([702b6ac](https://github.com/vitejs/rolldown-vite/commit/702b6ac)), closes [#135](https://github.com/vitejs/rolldown-vite/issues/135) diff --git a/packages/vite/package.json b/packages/vite/package.json index 1d26bfe26e0d35..a176b3b11671e0 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "rolldown-vite", - "version": "6.3.3", + "version": "6.3.4", "type": "module", "license": "MIT", "author": "Evan You", From ec8faac6a45fc53ff1489646c18efab71bab5747 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Thu, 24 Apr 2025 10:58:45 +0900 Subject: [PATCH 081/102] feat: update rolldown --- packages/vite/package.json | 6 +- packages/vite/src/node/plugins/index.ts | 4 - packages/vite/src/node/plugins/resolve.ts | 1 + pnpm-lock.yaml | 132 +++++++++++----------- 4 files changed, 70 insertions(+), 73 deletions(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index a176b3b11671e0..dc4b287543548c 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -85,12 +85,12 @@ }, "//": "READ CONTRIBUTING.md to understand what to put under deps vs. devDeps!", "dependencies": { - "@oxc-project/runtime": "0.65.0", + "@oxc-project/runtime": "0.66.0", "fdir": "^6.4.3", "lightningcss": "^1.29.3", "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rolldown": "1.0.0-beta.8-commit.d53650c", + "rolldown": "1.0.0-beta.8-commit.2686eb1", "tinyglobby": "^0.2.12" }, "optionalDependencies": { @@ -100,7 +100,7 @@ "@ampproject/remapping": "^2.3.0", "@babel/parser": "^7.27.0", "@jridgewell/trace-mapping": "^0.3.25", - "@oxc-project/types": "0.65.0", + "@oxc-project/types": "0.66.0", "@polka/compression": "^1.0.0-next.25", "@rollup/plugin-alias": "^5.1.1", "@rollup/plugin-commonjs": "^28.0.3", diff --git a/packages/vite/src/node/plugins/index.ts b/packages/vite/src/node/plugins/index.ts index a973d09b089cd7..5097915da5e235 100644 --- a/packages/vite/src/node/plugins/index.ts +++ b/packages/vite/src/node/plugins/index.ts @@ -144,13 +144,9 @@ export async function resolvePlugins( !!environment.config.build.sourcemap return nativeTransformPlugin({ - // @ts-expect-error https://github.com/rolldown/rolldown/pull/4266 include, - // @ts-expect-error https://github.com/rolldown/rolldown/pull/4266 exclude, - // @ts-expect-error https://github.com/rolldown/rolldown/pull/4266 jsxRefreshInclude, - // @ts-expect-error https://github.com/rolldown/rolldown/pull/4266 jsxRefreshExclude, isServerConsumer: environment.config.consumer === 'server', runtimeResolveBase: normalizePath( diff --git a/packages/vite/src/node/plugins/resolve.ts b/packages/vite/src/node/plugins/resolve.ts index dffec6d9dc04a5..7ef4ac91213099 100644 --- a/packages/vite/src/node/plugins/resolve.ts +++ b/packages/vite/src/node/plugins/resolve.ts @@ -251,6 +251,7 @@ export function oxcResolvePlugin( }, environmentConsumer: environment.config.consumer, environmentName: environment.name, + builtins: environment.config.resolve.builtins, external: options.external, noExternal: noExternal, dedupe: options.dedupe, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2399ae427b95b6..f28c591ef39fa2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -224,8 +224,8 @@ importers: packages/vite: dependencies: '@oxc-project/runtime': - specifier: 0.65.0 - version: 0.65.0 + specifier: 0.66.0 + version: 0.66.0 fdir: specifier: ^6.4.3 version: 6.4.3(picomatch@4.0.2) @@ -239,8 +239,8 @@ importers: specifier: ^8.5.3 version: 8.5.3 rolldown: - specifier: 1.0.0-beta.8-commit.d53650c - version: 1.0.0-beta.8-commit.d53650c(@oxc-project/runtime@0.65.0)(typescript@5.7.3) + specifier: 1.0.0-beta.8-commit.2686eb1 + version: 1.0.0-beta.8-commit.2686eb1(@oxc-project/runtime@0.66.0)(typescript@5.7.3) tinyglobby: specifier: ^0.2.12 version: 0.2.12 @@ -255,8 +255,8 @@ importers: specifier: ^0.3.25 version: 0.3.25 '@oxc-project/types': - specifier: 0.65.0 - version: 0.65.0 + specifier: 0.66.0 + version: 0.66.0 '@polka/compression': specifier: ^1.0.0-next.25 version: 1.0.0-next.25 @@ -2834,12 +2834,12 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@oxc-project/runtime@0.65.0': - resolution: {integrity: sha512-qn70kbkGtJ3uWz+HXha+kufRXkT+pZWckJKL8jUPzXH5UNszSSwADkNQhb7/uit3tC70wFm9qPRlLHnJcjSGuA==} + '@oxc-project/runtime@0.66.0': + resolution: {integrity: sha512-B0+lqyEYPKP6E9lLVegluJoHDr2+hcs3J5D5kogdHCPwzp/JfzYqZlurOU82uoaiw0A9Ct9QPp+5RhY9TOuakg==} engines: {node: '>=6.9.0'} - '@oxc-project/types@0.65.0': - resolution: {integrity: sha512-7MpMzyXCcwxrTxJ4L0siy63Ds/LA8LAM4szumTFiynxTJkfrIZEV4PyR4Th0CqFZQ+oNi8WvW3Dr1MLy7o9qPQ==} + '@oxc-project/types@0.66.0': + resolution: {integrity: sha512-KF5Wlo2KzQ+jmuCtrGISZoUfdHom7qHavNfPLW2KkeYJfYMGwtiia8KjwtsvNJ49qRiXImOCkPeVPd4bMlbR7w==} '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} @@ -2942,63 +2942,63 @@ packages: resolution: {integrity: sha512-TvCl79Y8v18ZhFGd5mjO1kYPovSBq3+4LVCi5Nfl1JI8fS8i8kXbgQFGwBJRXczim8GlW8c2LMBKTtExYXOy/A==} engines: {node: '>=18'} - '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.d53650c': - resolution: {integrity: sha512-C2YSfcGBAffz57TiymNfElDJs314NYdyiNRT7AOPrAIH9Cmmj3sjQNCORuCZv2m7R+omC4MGqR6Jv8U5yxe/OA==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.2686eb1': + resolution: {integrity: sha512-2GCVymE4qe30/ox/w+3aOOTCsvphbXCW41BxATiYJQzNPXQ7NY3RMTfvuDKUQW5KJSr3rKSj0zxPbjFJYCfGWw==} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.d53650c': - resolution: {integrity: sha512-F83mKqDgN3E96Tnxo5ug+ex8W9gZ1tSdM5t7MQO9ymrvIaK1KhAqd0ST6TrkpTxhYvpMEPhWHGk/iN9914yEQQ==} + '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.2686eb1': + resolution: {integrity: sha512-iiCq6rUyx+BjwAp5keIJnJiaGC8W+rfp6YgtsEjJUTqv+s9+UQxhXyw7qwnp1YkahTKiuyUUSM+CVcecbcrXlw==} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.d53650c': - resolution: {integrity: sha512-k4RMNsQv69/h9SV4HaOWOA2Kirx+VTi3+i7aHDfaAHllDMEcJ5eYsyDk/8nUTiwvZ3IgKPum2mjEBOmylc1jHQ==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.2686eb1': + resolution: {integrity: sha512-8qkE8ANkELvEiE26Jpdlh7QRw7uOaqLOnbAPAJ9NySo6+VwAWILefQgo+pamXTEsHpAZqSo7DapFWjUtZdkUDg==} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.d53650c': - resolution: {integrity: sha512-fVLfIFsYsZ3SBGgqsBT0lN5C+sUvJwkAcnmrkMmOTIU5dIwabDTThiOmYrsgHH0B5FHTDHWa9VTUHsbgOo3kyw==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.2686eb1': + resolution: {integrity: sha512-QCBw+96ZABHtJU3MBbl5DnD18/I+Lg06/MegyCHPI1j0VnqdmK8lDIPuaBzrj52USLYBoABC9HhuXMbIN0OfPA==} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.d53650c': - resolution: {integrity: sha512-zYJVxg2NQmfJjsgk+VhKSGlTwT8AWgdnqQhxMBTRuM2Qa3nyCnCTxtyqNWDKhRA6wpzwdsFpb6n2IKXa8pJcsw==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.2686eb1': + resolution: {integrity: sha512-bjGStzNXe1hD6vP6g2/T134RU85Mev+o+XEIB8kJT3Z9tq09SqDhN3ONqzUaeF7QQawv2M8XXDUOIdPhsrgmvg==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.d53650c': - resolution: {integrity: sha512-nkfKpOEkcFp2QQ5R9DiA9jNLjkK1WkD9RakJtAEgieaj+AZutGxsQvzMFxGp8gybrGJa/NXgVBaF8oSMy2xJ+Q==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.2686eb1': + resolution: {integrity: sha512-ZpN8ub+PiDBYjTMcXt3ihoPKpXikAYPfpJXdx1x0IjJmFqlLsSWxU6aqbkHBxALER7SxwQ4e9r5LPZKJnwBr7Q==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.d53650c': - resolution: {integrity: sha512-6S2ntGX4asGKNx8x2hH4XI8PGG4sKm6NGJVrdjxuvcAqgoKlJUjft74Bs/8hnNbGvRe6u0TIGz22EVPr1iaM1A==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.2686eb1': + resolution: {integrity: sha512-ysVj17eqf0amHpF9pKOv5JWsW2F89oVql88PD4ldamhBUZq8unZdPqr8fogx+08TmURDtu9ygZlBvSB55VdzJQ==} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.d53650c': - resolution: {integrity: sha512-NsTD/0B92u5BOVqD9ydgBTOIACOHt1s0FGQ6H8yE8GOkligPPCqJ797frH8IbU3TZ+OTCHLGLdyQYTC2PJG7ag==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.2686eb1': + resolution: {integrity: sha512-Yob3aIWUdXaCW1aKA0Ypo2ie8p+3uvOSobR9WTabx+aS7NPJuQbjAJP6n3CZHRPoKnJBCeftt3Bh8bFk1SKCMQ==} cpu: [x64] os: [linux] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.d53650c': - resolution: {integrity: sha512-LK4Z+LpzVLhW4Te4yWCP4wBpIQFNGwRrUvi/PhqQ19warpP1El/sn+2h2YIvBzv5UsRlCgFPhdeMvuTD6EPkpg==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.2686eb1': + resolution: {integrity: sha512-/tGqIUvsjTMe5h8DAR5XM++IsAMNmxgD2vFN+OzwE3bNAS3qk3w7rq6JyD+hBWwz+6QLgYVCTD7fNDXAYZKgWw==} engines: {node: '>=14.21.3'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.d53650c': - resolution: {integrity: sha512-39OzCONG2Nnyr0+ZtJPYg2I1b+lyzOXmdhvLCY1b4vms1gL3p4cITFcy4DxP8aBMcJf8rep90ayMkoDikX9evQ==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.2686eb1': + resolution: {integrity: sha512-uIuzY9dNeSLhAL4YW7YDYQ0wlSIDU7fzkhGYsfcH37ItSpOdxisxJLu4tLbl8i0AarLJvfH1+MgMSSGC2ioAtQ==} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.d53650c': - resolution: {integrity: sha512-5jN7MyjjUcu/VFbtf8KnfifkmolyFDHIJ1n79Wne7F57C0sgUpJCjtyjnN57jB8Hd7m7SoHDdKGYpAHVwQvNkg==} + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.2686eb1': + resolution: {integrity: sha512-tadc/hpAWQ6TPaF7U1AX6h/BYDm0Ukxg6o4647IfDREvncyf4RaNo99ByBSfoOYxqwlA2nu4llXkXx0rhWCfsQ==} cpu: [ia32] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.d53650c': - resolution: {integrity: sha512-0dZpFewWIOb9K4xBfcurUNdIdpVM1e6KdMDQ8Iiut/Dy4nRlUAEpVsJFJOphaYW3fpIVmZ5eJjhbVAe5aDeZNw==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.2686eb1': + resolution: {integrity: sha512-8nMcDSZpCR2KuKCkgeA9/Em967VhB1jZys8W0j95tcKMyNva/Bnq9wxNH5CAMtL3AzV/QIT92RrHTWbIt0m1MA==} cpu: [x64] os: [win32] @@ -6796,11 +6796,11 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.8-commit.d53650c: - resolution: {integrity: sha512-GVHSJrd2ObJV64H6frLgDZwAydsKL5wyPKE7nEEl1U8QMx2O9HsQyLk1sI4uZQfGbmfIFR32QpS/fdv6jd+a2A==} + rolldown@1.0.0-beta.8-commit.2686eb1: + resolution: {integrity: sha512-NIo+n0m7ZVC6VXQ4l2zNYJOQ84lEthihbByZBBHzmyyhH/605jL43n2qFTPNy6W3stDnTCyp8/YYDlw39+fXlA==} hasBin: true peerDependencies: - '@oxc-project/runtime': 0.65.0 + '@oxc-project/runtime': 0.66.0 peerDependenciesMeta: '@oxc-project/runtime': optional: true @@ -8990,9 +8990,9 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.0 - '@oxc-project/runtime@0.65.0': {} + '@oxc-project/runtime@0.66.0': {} - '@oxc-project/types@0.65.0': {} + '@oxc-project/types@0.66.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -9066,42 +9066,42 @@ snapshots: '@publint/pack@0.1.1': {} - '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.d53650c': + '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.2686eb1': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.d53650c': + '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.2686eb1': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.d53650c': + '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.2686eb1': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.d53650c': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.2686eb1': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.d53650c': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.2686eb1': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.d53650c': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.2686eb1': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.d53650c': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.2686eb1': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.d53650c': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.2686eb1': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.d53650c': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.2686eb1': dependencies: '@napi-rs/wasm-runtime': 0.2.9 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.d53650c': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.2686eb1': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.d53650c': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.2686eb1': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.d53650c': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.2686eb1': optional: true '@rollup/plugin-alias@5.1.1(rollup@4.34.9)': @@ -13082,26 +13082,26 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.8-commit.d53650c(@oxc-project/runtime@0.65.0)(typescript@5.7.3): + rolldown@1.0.0-beta.8-commit.2686eb1(@oxc-project/runtime@0.66.0)(typescript@5.7.3): dependencies: - '@oxc-project/types': 0.65.0 + '@oxc-project/types': 0.66.0 '@valibot/to-json-schema': 1.0.0(valibot@1.0.0(typescript@5.7.3)) ansis: 3.17.0 valibot: 1.0.0(typescript@5.7.3) optionalDependencies: - '@oxc-project/runtime': 0.65.0 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.8-commit.d53650c - '@rolldown/binding-darwin-x64': 1.0.0-beta.8-commit.d53650c - '@rolldown/binding-freebsd-x64': 1.0.0-beta.8-commit.d53650c - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.8-commit.d53650c - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.8-commit.d53650c - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.8-commit.d53650c - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.8-commit.d53650c - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.8-commit.d53650c - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.8-commit.d53650c - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.8-commit.d53650c - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.8-commit.d53650c - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.8-commit.d53650c + '@oxc-project/runtime': 0.66.0 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.8-commit.2686eb1 + '@rolldown/binding-darwin-x64': 1.0.0-beta.8-commit.2686eb1 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.8-commit.2686eb1 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.8-commit.2686eb1 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.8-commit.2686eb1 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.8-commit.2686eb1 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.8-commit.2686eb1 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.8-commit.2686eb1 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.8-commit.2686eb1 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.8-commit.2686eb1 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.8-commit.2686eb1 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.8-commit.2686eb1 transitivePeerDependencies: - typescript From 530677567b2f18839a639c3309c330abab5164b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Thu, 24 Apr 2025 13:14:37 +0900 Subject: [PATCH 082/102] feat(native-plugin): use native reporter plugin (#138) --- packages/vite/src/node/build.ts | 2 +- packages/vite/src/node/plugins/reporter.ts | 21 ++++++++++++++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index 1311099b6e4116..ad543f87375939 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -519,7 +519,7 @@ export async function resolveBuildPlugins(config: ResolvedConfig): Promise<{ }) : manifestPlugin(), ssrManifestPlugin(), - buildReporterPlugin(config), + ...buildReporterPlugin(config), ] : []), enableNativePlugin === true diff --git a/packages/vite/src/node/plugins/reporter.ts b/packages/vite/src/node/plugins/reporter.ts index 845a8c3cd351c3..db8826584c5e57 100644 --- a/packages/vite/src/node/plugins/reporter.ts +++ b/packages/vite/src/node/plugins/reporter.ts @@ -3,7 +3,8 @@ import { gzip } from 'node:zlib' import { promisify } from 'node:util' import colors from 'picocolors' import type { OutputBundle } from 'rolldown' -import type { Plugin } from '../plugin' +import { reportPlugin as nativeReportPlugin } from 'rolldown/experimental' +import { type Plugin, perEnvironmentPlugin } from '../plugin' import type { ResolvedConfig } from '../config' import type { Environment } from '../environment' import { perEnvironmentState } from '../environment' @@ -26,7 +27,7 @@ type LogEntry = { const COMPRESSIBLE_ASSETS_RE = /\.(?:html|json|svg|txt|xml|xhtml|wasm)$/ -export function buildReporterPlugin(config: ResolvedConfig): Plugin { +export function buildReporterPlugin(config: ResolvedConfig): Plugin[] { const compress = promisify(gzip) const numberFormatter = new Intl.NumberFormat('en', { @@ -270,7 +271,7 @@ export function buildReporterPlugin(config: ResolvedConfig): Plugin { } }) - return { + const jsPlugin: Plugin = { name: 'vite:reporter', sharedDuringBuild: true, perEnvironmentStartEndDuringDev: true, @@ -337,6 +338,20 @@ export function buildReporterPlugin(config: ResolvedConfig): Plugin { await chunksReporter(this).log(output, dir) }, } + const plugins = [jsPlugin] + + if (config.experimental.enableNativePlugin === true) { + delete jsPlugin.transform + delete jsPlugin.buildStart + delete jsPlugin.buildEnd + plugins.push( + perEnvironmentPlugin('vite:modules-reporter', () => + nativeReportPlugin({ isTty: !!tty }), + ), + ) + } + + return plugins } function writeLine(output: string) { From b5cf739006a955bb5292f3386134d4fb8bc626b0 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Thu, 24 Apr 2025 13:18:19 +0900 Subject: [PATCH 083/102] release: v6.3.5 --- .../create-vite/template-lit-ts/package.json | 2 +- packages/create-vite/template-lit/package.json | 2 +- .../create-vite/template-preact-ts/package.json | 2 +- .../create-vite/template-preact/package.json | 2 +- .../create-vite/template-qwik-ts/package.json | 2 +- packages/create-vite/template-qwik/package.json | 2 +- .../create-vite/template-react-ts/package.json | 2 +- packages/create-vite/template-react/package.json | 2 +- .../create-vite/template-solid-ts/package.json | 2 +- packages/create-vite/template-solid/package.json | 2 +- .../create-vite/template-svelte-ts/package.json | 2 +- .../create-vite/template-svelte/package.json | 2 +- .../create-vite/template-vanilla-ts/package.json | 2 +- .../create-vite/template-vanilla/package.json | 2 +- .../create-vite/template-vue-ts/package.json | 2 +- packages/create-vite/template-vue/package.json | 2 +- packages/vite/CHANGELOG.md | 16 ++++++++++++++++ packages/vite/package.json | 2 +- 18 files changed, 33 insertions(+), 17 deletions(-) diff --git a/packages/create-vite/template-lit-ts/package.json b/packages/create-vite/template-lit-ts/package.json index 34aa69000d26de..38f52ea395e4f1 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": "npm:rolldown-vite@^6.3.4" + "vite": "npm:rolldown-vite@^6.3.5" } } diff --git a/packages/create-vite/template-lit/package.json b/packages/create-vite/template-lit/package.json index c50389a9816d59..a5cc26ea8cf039 100644 --- a/packages/create-vite/template-lit/package.json +++ b/packages/create-vite/template-lit/package.json @@ -12,6 +12,6 @@ "lit": "^3.3.0" }, "devDependencies": { - "vite": "npm:rolldown-vite@^6.3.4" + "vite": "npm:rolldown-vite@^6.3.5" } } diff --git a/packages/create-vite/template-preact-ts/package.json b/packages/create-vite/template-preact-ts/package.json index 71484fb88c99ab..96d5015a2cdba1 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": "npm:rolldown-vite@^6.3.4" + "vite": "npm:rolldown-vite@^6.3.5" } } diff --git a/packages/create-vite/template-preact/package.json b/packages/create-vite/template-preact/package.json index ece8d1f5634504..543bdcef540de3 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": "npm:rolldown-vite@^6.3.4" + "vite": "npm:rolldown-vite@^6.3.5" } } diff --git a/packages/create-vite/template-qwik-ts/package.json b/packages/create-vite/template-qwik-ts/package.json index d87fbd024adc9a..b27af0114003b6 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": "npm:rolldown-vite@^6.3.4" + "vite": "npm:rolldown-vite@^6.3.5" }, "dependencies": { "@builder.io/qwik": "^1.13.0" diff --git a/packages/create-vite/template-qwik/package.json b/packages/create-vite/template-qwik/package.json index 9b0f0a26780b33..12e959a2de8648 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": "npm:rolldown-vite@^6.3.4" + "vite": "npm:rolldown-vite@^6.3.5" }, "dependencies": { "@builder.io/qwik": "^1.13.0" diff --git a/packages/create-vite/template-react-ts/package.json b/packages/create-vite/template-react-ts/package.json index e37f78880f8f71..403ae087962b7a 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.30.1", - "vite": "npm:rolldown-vite@^6.3.4" + "vite": "npm:rolldown-vite@^6.3.5" } } diff --git a/packages/create-vite/template-react/package.json b/packages/create-vite/template-react/package.json index f80bf45df63aca..e40996b0d085bd 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": "npm:rolldown-vite@^6.3.4" + "vite": "npm:rolldown-vite@^6.3.5" } } diff --git a/packages/create-vite/template-solid-ts/package.json b/packages/create-vite/template-solid-ts/package.json index 145eb0155e889e..5de630c0b001ed 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": "npm:rolldown-vite@^6.3.4", + "vite": "npm:rolldown-vite@^6.3.5", "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 01bc423d482add..2110985be3ff57 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": "npm:rolldown-vite@^6.3.4", + "vite": "npm:rolldown-vite@^6.3.5", "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 d699a482e2f337..1a0ab81a6d1497 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.28.1", "svelte-check": "^4.1.6", "typescript": "~5.7.2", - "vite": "npm:rolldown-vite@^6.3.4" + "vite": "npm:rolldown-vite@^6.3.5" } } diff --git a/packages/create-vite/template-svelte/package.json b/packages/create-vite/template-svelte/package.json index 21bc23c102f8c6..542ca5308d67bd 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.27.0", - "vite": "npm:rolldown-vite@^6.3.4" + "vite": "npm:rolldown-vite@^6.3.5" } } diff --git a/packages/create-vite/template-vanilla-ts/package.json b/packages/create-vite/template-vanilla-ts/package.json index adcdd41095233b..ab02e01c2bca34 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": "npm:rolldown-vite@^6.3.4" + "vite": "npm:rolldown-vite@^6.3.5" } } diff --git a/packages/create-vite/template-vanilla/package.json b/packages/create-vite/template-vanilla/package.json index 39135873034f49..31be04443f821f 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": "npm:rolldown-vite@^6.3.4" + "vite": "npm:rolldown-vite@^6.3.5" } } diff --git a/packages/create-vite/template-vue-ts/package.json b/packages/create-vite/template-vue-ts/package.json index 50f2542ea8f652..f1d964799c18b8 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.3", "@vue/tsconfig": "^0.7.0", "typescript": "~5.7.2", - "vite": "npm:rolldown-vite@^6.3.4", + "vite": "npm:rolldown-vite@^6.3.5", "vue-tsc": "^2.2.8" } } diff --git a/packages/create-vite/template-vue/package.json b/packages/create-vite/template-vue/package.json index 826353e174e43f..f074d90f07aa19 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.3", - "vite": "npm:rolldown-vite@^6.3.4" + "vite": "npm:rolldown-vite@^6.3.5" } } diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index 8f053b7d179b9f..dd80eb612340fe 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,19 @@ +## 6.3.5 (2025-04-24) + +* feat: update rolldown ([ec8faac](https://github.com/vitejs/rolldown-vite/commit/ec8faac)) +* feat(native-plugin): use native reporter plugin (#138) ([5306775](https://github.com/vitejs/rolldown-vite/commit/5306775)), closes [#138](https://github.com/vitejs/rolldown-vite/issues/138) +* release: v6.3.3 ([db9eb97](https://github.com/vitejs/rolldown-vite/commit/db9eb97)) +* fix: ignore malformed uris in tranform middleware (#19853) ([e4d5201](https://github.com/vitejs/rolldown-vite/commit/e4d5201)), closes [#19853](https://github.com/vitejs/rolldown-vite/issues/19853) +* fix(assets): ensure ?no-inline is not included in the asset url in the production environment (#1949 ([16a73c0](https://github.com/vitejs/rolldown-vite/commit/16a73c0)), closes [#19496](https://github.com/vitejs/rolldown-vite/issues/19496) +* fix(css): resolve relative imports in sass properly on Windows (#19920) ([ffab442](https://github.com/vitejs/rolldown-vite/commit/ffab442)), closes [#19920](https://github.com/vitejs/rolldown-vite/issues/19920) +* fix(deps): update all non-major dependencies (#19899) ([a4b500e](https://github.com/vitejs/rolldown-vite/commit/a4b500e)), closes [#19899](https://github.com/vitejs/rolldown-vite/issues/19899) +* fix(ssr): fix execution order of re-export (#19841) ([ed29dee](https://github.com/vitejs/rolldown-vite/commit/ed29dee)), closes [#19841](https://github.com/vitejs/rolldown-vite/issues/19841) +* fix(ssr): fix live binding of default export declaration and hoist exports getter (#19842) ([80a91ff](https://github.com/vitejs/rolldown-vite/commit/80a91ff)), closes [#19842](https://github.com/vitejs/rolldown-vite/issues/19842) +* perf: skip sourcemap generation for renderChunk hook of import-analysis-build plugin (#19921) ([55cfd04](https://github.com/vitejs/rolldown-vite/commit/55cfd04)), closes [#19921](https://github.com/vitejs/rolldown-vite/issues/19921) +* test(ssr): test `ssrTransform` re-export deps and test stacktrace with first line (#19629) ([9399cda](https://github.com/vitejs/rolldown-vite/commit/9399cda)), closes [#19629](https://github.com/vitejs/rolldown-vite/issues/19629) + + + ## 6.3.4 (2025-04-23) * feat: update rolldown ([233b7bf](https://github.com/vitejs/rolldown-vite/commit/233b7bf)) diff --git a/packages/vite/package.json b/packages/vite/package.json index 5cdd7485196a3c..a0f3a68cd5d894 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "rolldown-vite", - "version": "6.3.4", + "version": "6.3.5", "type": "module", "license": "MIT", "author": "Evan You", From 9c6218ea4b56eb97b40365b8d617de58c336fc3a Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Fri, 25 Apr 2025 14:40:34 +0200 Subject: [PATCH 084/102] chore: add rolldown-vite indicator (#141) --- packages/vite/src/node/build.ts | 2 +- packages/vite/src/node/cli.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index ad543f87375939..21a474c5bd574f 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -572,7 +572,7 @@ async function buildEnvironment( logger.info( colors.cyan( - `vite v${VERSION} ${colors.green( + `rolldown-vite v${VERSION} ${colors.green( `building ${ssr ? `SSR bundle ` : ``}for ${environment.config.mode}...`, )}`, ), diff --git a/packages/vite/src/node/cli.ts b/packages/vite/src/node/cli.ts index 5a41a4e75b94b5..45669b84e53a88 100644 --- a/packages/vite/src/node/cli.ts +++ b/packages/vite/src/node/cli.ts @@ -218,7 +218,7 @@ cli info( `\n ${colors.green( - `${colors.bold('VITE')} v${VERSION}`, + `${colors.bold('ROLLDOWN-VITE')} v${VERSION}`, )}${modeString} ${startupDurationString}\n`, { clear: !hasExistingLogs, From 265e4d49ff16f054e38cb3954c0214b7c6ff73ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Mon, 28 Apr 2025 20:08:30 +0900 Subject: [PATCH 085/102] fix(asset): regex filter should not force query to be included (#143) --- packages/vite/src/node/plugins/asset.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/node/plugins/asset.ts b/packages/vite/src/node/plugins/asset.ts index 6c5bb1c14c1aae..33a12245793392 100644 --- a/packages/vite/src/node/plugins/asset.ts +++ b/packages/vite/src/node/plugins/asset.ts @@ -305,8 +305,8 @@ export function assetPlugin(config: ResolvedConfig): Plugin { function addQueryToRegex(input: RegExp) { return new RegExp( - // replace `$` with `\?.*?$` (ignore `\$`) - input.source.replace(/(? Date: Wed, 30 Apr 2025 20:32:12 +0900 Subject: [PATCH 086/102] feat(types): make exposed `Rollup` type more compatible with Rollup (#145) --- eslint.config.js | 1 + packages/vite/src/node/index.ts | 5 +++-- .../vite/types/internal/rollupTypeCompat.d.ts | 21 +++++++++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 packages/vite/types/internal/rollupTypeCompat.d.ts diff --git a/eslint.config.js b/eslint.config.js index b16fa45a9eba1f..f9760c8d4b6573 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -98,6 +98,7 @@ export default tseslint.config( allowModules: [ 'vite', 'esbuild', + 'rolldown', 'less', 'sass', 'sass-embedded', diff --git a/packages/vite/src/node/index.ts b/packages/vite/src/node/index.ts index bc974acf7fe8e3..1756919ff92630 100644 --- a/packages/vite/src/node/index.ts +++ b/packages/vite/src/node/index.ts @@ -1,6 +1,7 @@ -import type * as Rollup from 'rolldown' +import type * as Rolldown from 'rolldown' +import type * as Rollup from 'types/internal/rollupTypeCompat' -export type { Rollup } +export type { Rollup, Rolldown } export { parseAst, parseAstAsync } from 'rolldown/parseAst' export { defineConfig, diff --git a/packages/vite/types/internal/rollupTypeCompat.d.ts b/packages/vite/types/internal/rollupTypeCompat.d.ts new file mode 100644 index 00000000000000..c101efe69dea5d --- /dev/null +++ b/packages/vite/types/internal/rollupTypeCompat.d.ts @@ -0,0 +1,21 @@ +import type * as Rolldown from 'rolldown' + +export * from 'rolldown' + +/** @deprecated use RolldownBuild instead */ +export type RollupBuild = Rolldown.RolldownBuild + +/** @deprecated use RolldownOptions instead */ +export type RollupOptions = Rolldown.RolldownOptions + +/** @deprecated use RolldownOutput instead */ +export type RollupOutput = Rolldown.RolldownOutput + +/** @deprecated use RolldownPlugin instead */ +export type RollupPlugin = Rolldown.RolldownPlugin + +/** @deprecated use RolldownPluginOption instead */ +export type RollupPluginOption = Rolldown.RolldownPluginOption + +/** @deprecated use RolldownWatcher instead */ +export type RollupWatcher = Rolldown.RolldownWatcher From 6eccf22247988c09881f2ef0dd8c08d90b427d57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Wed, 30 Apr 2025 20:37:53 +0900 Subject: [PATCH 087/102] fix(types): add ESBuildOptions type back (#146) --- packages/vite/src/node/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/vite/src/node/index.ts b/packages/vite/src/node/index.ts index 1756919ff92630..1286b2ca2c7c9d 100644 --- a/packages/vite/src/node/index.ts +++ b/packages/vite/src/node/index.ts @@ -145,6 +145,7 @@ export type { StylusPreprocessorOptions, } from './plugins/css' export type { JsonOptions } from './plugins/json' +export type { ESBuildOptions } from './plugins/esbuild' export type { EsbuildTransformOptions } from 'types/internal/esbuildOptions' export type { OxcOptions } from './plugins/oxc' export type { Manifest, ManifestChunk } from './plugins/manifest' From b3efa58b3790fb38ebf659d020ee2b6744785b59 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Thu, 1 May 2025 10:43:37 +0900 Subject: [PATCH 088/102] feat: update rolldown --- packages/vite/package.json | 6 +- packages/vite/rollup.config.ts | 5 +- packages/vite/rollup.dts.config.ts | 3 +- packages/vite/src/node/utils.ts | 2 +- pnpm-lock.yaml | 157 ++++++++++++----------------- 5 files changed, 73 insertions(+), 100 deletions(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index a0f3a68cd5d894..513a2e1ec0fdc9 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -85,12 +85,12 @@ }, "//": "READ CONTRIBUTING.md to understand what to put under deps vs. devDeps!", "dependencies": { - "@oxc-project/runtime": "0.66.0", + "@oxc-project/runtime": "0.67.0", "fdir": "^6.4.4", "lightningcss": "^1.29.3", "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rolldown": "1.0.0-beta.8-commit.2686eb1", + "rolldown": "1.0.0-beta.8-commit.a720367", "tinyglobby": "^0.2.13" }, "optionalDependencies": { @@ -100,7 +100,7 @@ "@ampproject/remapping": "^2.3.0", "@babel/parser": "^7.27.0", "@jridgewell/trace-mapping": "^0.3.25", - "@oxc-project/types": "0.66.0", + "@oxc-project/types": "0.67.0", "@polka/compression": "^1.0.0-next.25", "@rollup/plugin-alias": "^5.1.1", "@rollup/plugin-commonjs": "^28.0.3", diff --git a/packages/vite/rollup.config.ts b/packages/vite/rollup.config.ts index 8bb7988395ef35..745226118cbad1 100644 --- a/packages/vite/rollup.config.ts +++ b/packages/vite/rollup.config.ts @@ -117,8 +117,7 @@ const nodeConfig = defineConfig({ external: [ /^vite\//, 'fsevents', - 'rolldown/parseAst', - 'rolldown/experimental', + /^rolldown\//, /^tsx\//, /^#/, ...Object.keys(pkg.dependencies), @@ -198,7 +197,7 @@ const moduleRunnerConfig = defineConfig({ external: [ 'fsevents', 'lightningcss', - 'rolldown/parseAst', + /^rolldown\//, ...Object.keys(pkg.dependencies), ], plugins: [ diff --git a/packages/vite/rollup.dts.config.ts b/packages/vite/rollup.dts.config.ts index 9f2471d187b8fb..18122e2cca19f8 100644 --- a/packages/vite/rollup.dts.config.ts +++ b/packages/vite/rollup.dts.config.ts @@ -16,8 +16,7 @@ const pkg = JSON.parse( const external = [ /^node:*/, /^vite\//, - 'rolldown/parseAst', - 'rolldown/experimental', + /^rolldown\//, ...Object.keys(pkg.dependencies), ...Object.keys(pkg.peerDependencies), ...Object.keys(pkg.devDependencies), diff --git a/packages/vite/src/node/utils.ts b/packages/vite/src/node/utils.ts index b4caf997c9501e..e1bcb438d5d689 100644 --- a/packages/vite/src/node/utils.ts +++ b/packages/vite/src/node/utils.ts @@ -64,7 +64,7 @@ export const createFilter = _createFilter as ( options?: { resolve?: string | false | null }, ) => (id: string | unknown) => boolean -export { withFilter } from 'rolldown' +export { withFilter } from 'rolldown/filter' const replaceSlashOrColonRE = /[/:]/g const replaceDotRE = /\./g diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f946c7307df5dd..150ca5d8c19ca6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -224,8 +224,8 @@ importers: packages/vite: dependencies: '@oxc-project/runtime': - specifier: 0.66.0 - version: 0.66.0 + specifier: 0.67.0 + version: 0.67.0 fdir: specifier: ^6.4.4 version: 6.4.4(picomatch@4.0.2) @@ -239,8 +239,8 @@ importers: specifier: ^8.5.3 version: 8.5.3 rolldown: - specifier: 1.0.0-beta.8-commit.2686eb1 - version: 1.0.0-beta.8-commit.2686eb1(@oxc-project/runtime@0.66.0)(typescript@5.7.3) + specifier: 1.0.0-beta.8-commit.a720367 + version: 1.0.0-beta.8-commit.a720367(@oxc-project/runtime@0.67.0) tinyglobby: specifier: ^0.2.13 version: 0.2.13 @@ -255,8 +255,8 @@ importers: specifier: ^0.3.25 version: 0.3.25 '@oxc-project/types': - specifier: 0.66.0 - version: 0.66.0 + specifier: 0.67.0 + version: 0.67.0 '@polka/compression': specifier: ^1.0.0-next.25 version: 1.0.0-next.25 @@ -2908,12 +2908,12 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@oxc-project/runtime@0.66.0': - resolution: {integrity: sha512-B0+lqyEYPKP6E9lLVegluJoHDr2+hcs3J5D5kogdHCPwzp/JfzYqZlurOU82uoaiw0A9Ct9QPp+5RhY9TOuakg==} + '@oxc-project/runtime@0.67.0': + resolution: {integrity: sha512-2sFnKBxAlzdxcPNQaQ4GlMx6U4EGFgyLgCM/b6DHHXjxrh8CucCtD6RTMPGRWfkY4tyEAtqUzi7epdhzzPc/1Q==} engines: {node: '>=6.9.0'} - '@oxc-project/types@0.66.0': - resolution: {integrity: sha512-KF5Wlo2KzQ+jmuCtrGISZoUfdHom7qHavNfPLW2KkeYJfYMGwtiia8KjwtsvNJ49qRiXImOCkPeVPd4bMlbR7w==} + '@oxc-project/types@0.67.0': + resolution: {integrity: sha512-AI7inoYvnVro7b8S2Z+Fxi295xQvNKLP1CM/xzx5il4R3aiGgnFt9qiXaRo9vIutataX8AjHcaPnOsjdcItU0w==} '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} @@ -3016,63 +3016,63 @@ packages: resolution: {integrity: sha512-TvCl79Y8v18ZhFGd5mjO1kYPovSBq3+4LVCi5Nfl1JI8fS8i8kXbgQFGwBJRXczim8GlW8c2LMBKTtExYXOy/A==} engines: {node: '>=18'} - '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.2686eb1': - resolution: {integrity: sha512-2GCVymE4qe30/ox/w+3aOOTCsvphbXCW41BxATiYJQzNPXQ7NY3RMTfvuDKUQW5KJSr3rKSj0zxPbjFJYCfGWw==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.a720367': + resolution: {integrity: sha512-26qGoMZ3lpNqu+4G4x3PNM55hJx/ZAtDTqcKoQCwUPbqXFXq7WCoL1CdjgyW0IHbHuo9B+mbJ3X2ZJCY+PWn/g==} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.2686eb1': - resolution: {integrity: sha512-iiCq6rUyx+BjwAp5keIJnJiaGC8W+rfp6YgtsEjJUTqv+s9+UQxhXyw7qwnp1YkahTKiuyUUSM+CVcecbcrXlw==} + '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.a720367': + resolution: {integrity: sha512-hZX9u8O7rFJtcTBXVk5sTDz+XKdVfAWpVWqg1q+GqMXtQnCw6mhmqMRW3XelK0spyS8icFbAUAkthmMgPcJRVg==} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.2686eb1': - resolution: {integrity: sha512-8qkE8ANkELvEiE26Jpdlh7QRw7uOaqLOnbAPAJ9NySo6+VwAWILefQgo+pamXTEsHpAZqSo7DapFWjUtZdkUDg==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.a720367': + resolution: {integrity: sha512-rCFjPJxHlo+bhpC3yqhpQ1cx/my8FoUfLxrnpkto0gW5Es8rD1lVnp5v4PSgvmF9E4rFxIUKJTdJL/58t0dKpg==} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.2686eb1': - resolution: {integrity: sha512-QCBw+96ZABHtJU3MBbl5DnD18/I+Lg06/MegyCHPI1j0VnqdmK8lDIPuaBzrj52USLYBoABC9HhuXMbIN0OfPA==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.a720367': + resolution: {integrity: sha512-/Nnnho+E8ekN2ucRe+l8uUwp+moUYyywKeTZ9oD7c6TB2SxQgN2Pryr7LjLwwCMeufqzCqfC1FPznWX2NQEkVA==} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.2686eb1': - resolution: {integrity: sha512-bjGStzNXe1hD6vP6g2/T134RU85Mev+o+XEIB8kJT3Z9tq09SqDhN3ONqzUaeF7QQawv2M8XXDUOIdPhsrgmvg==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.a720367': + resolution: {integrity: sha512-yeq5LLFCZFxwRoxiGxvmZWQylZX6zPGJGoMvrL+0hq0BNxEoHhZeYpd3D2ULHV7sxpfzPdfMJbRqpYh5aaZVwA==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.2686eb1': - resolution: {integrity: sha512-ZpN8ub+PiDBYjTMcXt3ihoPKpXikAYPfpJXdx1x0IjJmFqlLsSWxU6aqbkHBxALER7SxwQ4e9r5LPZKJnwBr7Q==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.a720367': + resolution: {integrity: sha512-aKeTbf1uVoENYtobcRXc/EaI+xfVL7+JnReNosiC6olPguwVy2iV0JAm75dD15EUxhhc+KTJE5ybFnBPhPKCXA==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.2686eb1': - resolution: {integrity: sha512-ysVj17eqf0amHpF9pKOv5JWsW2F89oVql88PD4ldamhBUZq8unZdPqr8fogx+08TmURDtu9ygZlBvSB55VdzJQ==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.a720367': + resolution: {integrity: sha512-al0R+u9xV+vlB9oRkTpmqThyHzDFhFI4WZ5gZffxlMO5E+72Z9p75hO/gD7taaXNWDy/b7CJ7osTP6we3qvR7Q==} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.2686eb1': - resolution: {integrity: sha512-Yob3aIWUdXaCW1aKA0Ypo2ie8p+3uvOSobR9WTabx+aS7NPJuQbjAJP6n3CZHRPoKnJBCeftt3Bh8bFk1SKCMQ==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.a720367': + resolution: {integrity: sha512-4qtd2eaaU9jsl1NSmGoYgWSZDHxyYPhq0YROjqJ0g8sChgD+QlT9Ocw6IGctXHJ1prpMvUjCBg/cHgNMi1+eIg==} cpu: [x64] os: [linux] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.2686eb1': - resolution: {integrity: sha512-/tGqIUvsjTMe5h8DAR5XM++IsAMNmxgD2vFN+OzwE3bNAS3qk3w7rq6JyD+hBWwz+6QLgYVCTD7fNDXAYZKgWw==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.a720367': + resolution: {integrity: sha512-BaKwi5gBII+NyIgbMnc2JRwP5WbS/LYWLxKK1UE3+UDesj9DUwVGRLY8BBWtCOZbkEbb4JW5c1YFnM2FwuPqtw==} engines: {node: '>=14.21.3'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.2686eb1': - resolution: {integrity: sha512-uIuzY9dNeSLhAL4YW7YDYQ0wlSIDU7fzkhGYsfcH37ItSpOdxisxJLu4tLbl8i0AarLJvfH1+MgMSSGC2ioAtQ==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.a720367': + resolution: {integrity: sha512-eOxYXfTUtyLIquP4fc/ukssQ4cTOI5gKjPOYP1wWuXmooMm2JAKaWQBK7lR6PUB0kMIkBetuRHkHAZOSeMgTzQ==} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.2686eb1': - resolution: {integrity: sha512-tadc/hpAWQ6TPaF7U1AX6h/BYDm0Ukxg6o4647IfDREvncyf4RaNo99ByBSfoOYxqwlA2nu4llXkXx0rhWCfsQ==} + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.a720367': + resolution: {integrity: sha512-Duqr7VYgauILr6ePI10j3MDTB1vBggHMuvkRchHkvs+55LM7kbBwpMva3NjxIOge07x/HGJAOVJBqys/8W7epg==} cpu: [ia32] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.2686eb1': - resolution: {integrity: sha512-8nMcDSZpCR2KuKCkgeA9/Em967VhB1jZys8W0j95tcKMyNva/Bnq9wxNH5CAMtL3AzV/QIT92RrHTWbIt0m1MA==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.a720367': + resolution: {integrity: sha512-z+mlPRnw5ojI9G4BDk/aDqgZfpc+W4e4tmdbMo0gkeboeabb0JHMBDxey2hCUff7oD+sMsdsurWtfqxMj+T90A==} cpu: [x64] os: [win32] @@ -3669,11 +3669,6 @@ packages: cpu: [x64] os: [win32] - '@valibot/to-json-schema@1.0.0': - resolution: {integrity: sha512-/9crJgPptVsGCL6X+JPDQyaJwkalSZ/52WuF8DiRUxJgcmpNdzYRfZ+gqMEP8W3CTVfuMWPqqvIgfwJ97f9Etw==} - peerDependencies: - valibot: ^1.0.0 - '@vitejs/longfilename-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@file:playground/optimize-deps/longfilename': resolution: {directory: playground/optimize-deps/longfilename, type: directory} @@ -6737,11 +6732,11 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rolldown@1.0.0-beta.8-commit.2686eb1: - resolution: {integrity: sha512-NIo+n0m7ZVC6VXQ4l2zNYJOQ84lEthihbByZBBHzmyyhH/605jL43n2qFTPNy6W3stDnTCyp8/YYDlw39+fXlA==} + rolldown@1.0.0-beta.8-commit.a720367: + resolution: {integrity: sha512-qsKYH3zQz8iKW3OO6vAgSsw+SmZb+M4f68bYB/Jo9fK5BUbQ+G/5Zmfjze/R0SepQPu1dTLo/qqFS7+UhfqVGw==} hasBin: true peerDependencies: - '@oxc-project/runtime': 0.66.0 + '@oxc-project/runtime': 0.67.0 peerDependenciesMeta: '@oxc-project/runtime': optional: true @@ -7502,14 +7497,6 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} - valibot@1.0.0: - resolution: {integrity: sha512-1Hc0ihzWxBar6NGeZv7fPLY0QuxFMyxwYR2sF1Blu7Wq7EnremwY2W02tit2ij2VJT8HcSkHAQqmFfl77f73Yw==} - peerDependencies: - typescript: '>=5' - peerDependenciesMeta: - typescript: - optional: true - validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -8954,9 +8941,9 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.0 - '@oxc-project/runtime@0.66.0': {} + '@oxc-project/runtime@0.67.0': {} - '@oxc-project/types@0.66.0': {} + '@oxc-project/types@0.67.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -9030,42 +9017,42 @@ snapshots: '@publint/pack@0.1.1': {} - '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.2686eb1': + '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.a720367': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.2686eb1': + '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.a720367': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.2686eb1': + '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.a720367': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.2686eb1': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.a720367': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.2686eb1': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.a720367': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.2686eb1': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.a720367': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.2686eb1': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.a720367': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.2686eb1': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.a720367': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.2686eb1': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.a720367': dependencies: '@napi-rs/wasm-runtime': 0.2.9 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.2686eb1': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.a720367': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.2686eb1': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.a720367': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.2686eb1': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.a720367': optional: true '@rollup/plugin-alias@5.1.1(rollup@4.34.9)': @@ -9648,10 +9635,6 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.6.1': optional: true - '@valibot/to-json-schema@1.0.0(valibot@1.0.0(typescript@5.7.3))': - dependencies: - valibot: 1.0.0(typescript@5.7.3) - '@vitejs/longfilename-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@file:playground/optimize-deps/longfilename': {} '@vitejs/plugin-vue@5.2.1(vite@packages+vite)(vue@3.5.13(typescript@5.7.3))': @@ -12903,28 +12886,24 @@ snapshots: rfdc@1.4.1: {} - rolldown@1.0.0-beta.8-commit.2686eb1(@oxc-project/runtime@0.66.0)(typescript@5.7.3): + rolldown@1.0.0-beta.8-commit.a720367(@oxc-project/runtime@0.67.0): dependencies: - '@oxc-project/types': 0.66.0 - '@valibot/to-json-schema': 1.0.0(valibot@1.0.0(typescript@5.7.3)) + '@oxc-project/types': 0.67.0 ansis: 3.17.0 - valibot: 1.0.0(typescript@5.7.3) optionalDependencies: - '@oxc-project/runtime': 0.66.0 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.8-commit.2686eb1 - '@rolldown/binding-darwin-x64': 1.0.0-beta.8-commit.2686eb1 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.8-commit.2686eb1 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.8-commit.2686eb1 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.8-commit.2686eb1 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.8-commit.2686eb1 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.8-commit.2686eb1 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.8-commit.2686eb1 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.8-commit.2686eb1 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.8-commit.2686eb1 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.8-commit.2686eb1 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.8-commit.2686eb1 - transitivePeerDependencies: - - typescript + '@oxc-project/runtime': 0.67.0 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.8-commit.a720367 + '@rolldown/binding-darwin-x64': 1.0.0-beta.8-commit.a720367 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.8-commit.a720367 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.8-commit.a720367 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.8-commit.a720367 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.8-commit.a720367 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.8-commit.a720367 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.8-commit.a720367 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.8-commit.a720367 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.8-commit.a720367 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.8-commit.a720367 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.8-commit.a720367 rollup-plugin-dts@6.2.1(rollup@4.34.9)(typescript@5.7.3): dependencies: @@ -13788,10 +13767,6 @@ snapshots: utils-merge@1.0.1: {} - valibot@1.0.0(typescript@5.7.3): - optionalDependencies: - typescript: 5.7.3 - validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 From fca16adfd62aef42c0477efaf494984d64f6af78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Thu, 1 May 2025 11:00:16 +0900 Subject: [PATCH 089/102] fix: set `typescript.removeClassFieldsWithoutInitializer` for `useDefineForClassFields=false` (#148) --- packages/vite/src/node/plugins/oxc.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/vite/src/node/plugins/oxc.ts b/packages/vite/src/node/plugins/oxc.ts index 42d34524908aa5..478a7a119aecbd 100644 --- a/packages/vite/src/node/plugins/oxc.ts +++ b/packages/vite/src/node/plugins/oxc.ts @@ -200,6 +200,9 @@ export async function transformWithOxc( resolvedOptions.assumptions ??= {} resolvedOptions.assumptions.setPublicClassFields = !useDefineForClassFields + resolvedOptions.typescript ??= {} + resolvedOptions.typescript.removeClassFieldsWithoutInitializer = + !useDefineForClassFields // set target to es2021 or lower to enable class property transforms // https://github.com/oxc-project/oxc/issues/6735#issuecomment-2513866362 From e3b3ca582ef9fbcdc2cb553e1aa430c84310a364 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Thu, 1 May 2025 11:12:11 +0900 Subject: [PATCH 090/102] release: v6.3.6 --- packages/create-vite/template-lit-ts/package.json | 2 +- packages/create-vite/template-lit/package.json | 2 +- .../create-vite/template-preact-ts/package.json | 2 +- packages/create-vite/template-preact/package.json | 2 +- .../create-vite/template-qwik-ts/package.json | 2 +- packages/create-vite/template-qwik/package.json | 2 +- .../create-vite/template-react-ts/package.json | 2 +- packages/create-vite/template-react/package.json | 2 +- .../create-vite/template-solid-ts/package.json | 2 +- packages/create-vite/template-solid/package.json | 2 +- .../create-vite/template-svelte-ts/package.json | 2 +- packages/create-vite/template-svelte/package.json | 2 +- .../create-vite/template-vanilla-ts/package.json | 2 +- .../create-vite/template-vanilla/package.json | 2 +- packages/create-vite/template-vue-ts/package.json | 2 +- packages/create-vite/template-vue/package.json | 2 +- packages/vite/CHANGELOG.md | 15 +++++++++++++++ packages/vite/package.json | 2 +- 18 files changed, 32 insertions(+), 17 deletions(-) diff --git a/packages/create-vite/template-lit-ts/package.json b/packages/create-vite/template-lit-ts/package.json index 6e70d27c8be9af..3f4ef6588f2e1d 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.8.3", - "vite": "npm:rolldown-vite@^6.3.5" + "vite": "npm:rolldown-vite@^6.3.6" } } diff --git a/packages/create-vite/template-lit/package.json b/packages/create-vite/template-lit/package.json index a5cc26ea8cf039..676239080dc5c5 100644 --- a/packages/create-vite/template-lit/package.json +++ b/packages/create-vite/template-lit/package.json @@ -12,6 +12,6 @@ "lit": "^3.3.0" }, "devDependencies": { - "vite": "npm:rolldown-vite@^6.3.5" + "vite": "npm:rolldown-vite@^6.3.6" } } diff --git a/packages/create-vite/template-preact-ts/package.json b/packages/create-vite/template-preact-ts/package.json index ba42493ba7e0b5..3e237b99203587 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.8.3", - "vite": "npm:rolldown-vite@^6.3.5" + "vite": "npm:rolldown-vite@^6.3.6" } } diff --git a/packages/create-vite/template-preact/package.json b/packages/create-vite/template-preact/package.json index 543bdcef540de3..1f102e57198b8e 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": "npm:rolldown-vite@^6.3.5" + "vite": "npm:rolldown-vite@^6.3.6" } } diff --git a/packages/create-vite/template-qwik-ts/package.json b/packages/create-vite/template-qwik-ts/package.json index 45981881b558de..3679057ad99df6 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.8.3", - "vite": "npm:rolldown-vite@^6.3.5" + "vite": "npm:rolldown-vite@^6.3.6" }, "dependencies": { "@builder.io/qwik": "^1.13.0" diff --git a/packages/create-vite/template-qwik/package.json b/packages/create-vite/template-qwik/package.json index 12e959a2de8648..93895d3aa9e69e 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": "npm:rolldown-vite@^6.3.5" + "vite": "npm:rolldown-vite@^6.3.6" }, "dependencies": { "@builder.io/qwik": "^1.13.0" diff --git a/packages/create-vite/template-react-ts/package.json b/packages/create-vite/template-react-ts/package.json index 964c9dff9ff380..7ffec480acfee3 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.8.3", "typescript-eslint": "^8.30.1", - "vite": "npm:rolldown-vite@^6.3.5" + "vite": "npm:rolldown-vite@^6.3.6" } } diff --git a/packages/create-vite/template-react/package.json b/packages/create-vite/template-react/package.json index e40996b0d085bd..5341501514957b 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": "npm:rolldown-vite@^6.3.5" + "vite": "npm:rolldown-vite@^6.3.6" } } diff --git a/packages/create-vite/template-solid-ts/package.json b/packages/create-vite/template-solid-ts/package.json index 548b7a8d42edd5..a7f400971c118f 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.8.3", - "vite": "npm:rolldown-vite@^6.3.5", + "vite": "npm:rolldown-vite@^6.3.6", "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 2110985be3ff57..6de2aa7e573418 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": "npm:rolldown-vite@^6.3.5", + "vite": "npm:rolldown-vite@^6.3.6", "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 401d8f7473182a..3150d94a8e2872 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.28.1", "svelte-check": "^4.1.6", "typescript": "~5.8.3", - "vite": "npm:rolldown-vite@^6.3.5" + "vite": "npm:rolldown-vite@^6.3.6" } } diff --git a/packages/create-vite/template-svelte/package.json b/packages/create-vite/template-svelte/package.json index 542ca5308d67bd..6bc7d9d0ecaa46 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.27.0", - "vite": "npm:rolldown-vite@^6.3.5" + "vite": "npm:rolldown-vite@^6.3.6" } } diff --git a/packages/create-vite/template-vanilla-ts/package.json b/packages/create-vite/template-vanilla-ts/package.json index 646081f0523f2e..81847d2b6cf34a 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.8.3", - "vite": "npm:rolldown-vite@^6.3.5" + "vite": "npm:rolldown-vite@^6.3.6" } } diff --git a/packages/create-vite/template-vanilla/package.json b/packages/create-vite/template-vanilla/package.json index 31be04443f821f..3b3e5dc264266c 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": "npm:rolldown-vite@^6.3.5" + "vite": "npm:rolldown-vite@^6.3.6" } } diff --git a/packages/create-vite/template-vue-ts/package.json b/packages/create-vite/template-vue-ts/package.json index c98269ce816ac5..ca604fcbb3eb91 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.3", "@vue/tsconfig": "^0.7.0", "typescript": "~5.8.3", - "vite": "npm:rolldown-vite@^6.3.5", + "vite": "npm:rolldown-vite@^6.3.6", "vue-tsc": "^2.2.8" } } diff --git a/packages/create-vite/template-vue/package.json b/packages/create-vite/template-vue/package.json index f074d90f07aa19..4206fc5100a33b 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.3", - "vite": "npm:rolldown-vite@^6.3.5" + "vite": "npm:rolldown-vite@^6.3.6" } } diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index dd80eb612340fe..0e3d0b3526ad11 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,18 @@ +## 6.3.6 (2025-05-01) + +* fix: check static serve file inside sirv (#19965) ([c22c43d](https://github.com/vitejs/rolldown-vite/commit/c22c43d)), closes [#19965](https://github.com/vitejs/rolldown-vite/issues/19965) +* fix: set `typescript.removeClassFieldsWithoutInitializer` for `useDefineForClassFields=false` (#148) ([fca16ad](https://github.com/vitejs/rolldown-vite/commit/fca16ad)), closes [#148](https://github.com/vitejs/rolldown-vite/issues/148) +* fix(asset): regex filter should not force query to be included (#143) ([265e4d4](https://github.com/vitejs/rolldown-vite/commit/265e4d4)), closes [#143](https://github.com/vitejs/rolldown-vite/issues/143) +* fix(optimizer): return plain object when using `require` to import externals in optimized dependenci ([efc5eab](https://github.com/vitejs/rolldown-vite/commit/efc5eab)), closes [#19940](https://github.com/vitejs/rolldown-vite/issues/19940) +* fix(types): add ESBuildOptions type back (#146) ([6eccf22](https://github.com/vitejs/rolldown-vite/commit/6eccf22)), closes [#146](https://github.com/vitejs/rolldown-vite/issues/146) +* feat: update rolldown ([b3efa58](https://github.com/vitejs/rolldown-vite/commit/b3efa58)) +* feat(types): make exposed `Rollup` type more compatible with Rollup (#145) ([f086663](https://github.com/vitejs/rolldown-vite/commit/f086663)), closes [#145](https://github.com/vitejs/rolldown-vite/issues/145) +* release: v6.3.4 ([b040d54](https://github.com/vitejs/rolldown-vite/commit/b040d54)) +* chore: add rolldown-vite indicator (#141) ([9c6218e](https://github.com/vitejs/rolldown-vite/commit/9c6218e)), closes [#141](https://github.com/vitejs/rolldown-vite/issues/141) +* refactor: remove duplicate plugin context type (#19935) ([d6d01c2](https://github.com/vitejs/rolldown-vite/commit/d6d01c2)), closes [#19935](https://github.com/vitejs/rolldown-vite/issues/19935) + + + ## 6.3.5 (2025-04-24) * feat: update rolldown ([ec8faac](https://github.com/vitejs/rolldown-vite/commit/ec8faac)) diff --git a/packages/vite/package.json b/packages/vite/package.json index 513a2e1ec0fdc9..93ead4f218a9de 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "rolldown-vite", - "version": "6.3.5", + "version": "6.3.6", "type": "module", "license": "MIT", "author": "Evan You", From 2b287c6edf49b970b6596b56b628ebaaf12fb581 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Thu, 1 May 2025 13:28:36 +0900 Subject: [PATCH 091/102] feat: use Rolldown's watch API (#67) --- packages/vite/src/node/build.ts | 99 +++++++++++----------- packages/vite/src/node/watch.ts | 12 ++- playground/assets/__tests__/assets.spec.ts | 52 ++++++------ playground/assets/vite.config.js | 2 +- playground/package.json | 3 +- playground/vitestSetup.ts | 42 +++++---- pnpm-lock.yaml | 3 + 7 files changed, 121 insertions(+), 92 deletions(-) diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index 6aaba521da42c7..f377d9b556a7fb 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -17,11 +17,11 @@ import type { RolldownBuild, RolldownOptions, RolldownOutput, + RolldownWatcher, RollupError, RollupLog, - // RollupWatcher, WarningHandlerWithDefault, - // WatcherOptions, + WatcherOptions, } from 'rolldown' import { loadFallbackPlugin as nativeLoadFallbackPlugin, @@ -72,8 +72,9 @@ import { buildLoadFallbackPlugin } from './plugins/loadFallback' import { findNearestMainPackageData, findNearestPackageData } from './packages' import type { PackageCache } from './packages' import { + convertToNotifyOptions, getResolvedOutDirs, - // resolveChokidarOptions, + resolveChokidarOptions, resolveEmptyOutDir, } from './watch' import { completeSystemWrapPlugin } from './plugins/completeSystemWrap' @@ -280,7 +281,7 @@ export interface BuildEnvironmentOptions { * https://rollupjs.org/configuration-options/#watch * @default null */ - // watch?: WatcherOptions | null + watch?: WatcherOptions | null /** * create the Build Environment instance */ @@ -537,7 +538,7 @@ export async function resolveBuildPlugins(config: ResolvedConfig): Promise<{ */ export async function build( inlineConfig: InlineConfig = {}, -): Promise { +): Promise { const builder = await createBuilder(inlineConfig, true) const environment = Object.values(builder.environments)[0] if (!environment) throw new Error('No environment found') @@ -565,7 +566,7 @@ function resolveConfigToBuild( **/ async function buildEnvironment( environment: BuildEnvironment, -): Promise { +): Promise { const { root, packageCache } = environment.config const options = environment.config.build const libOptions = options.lib @@ -711,11 +712,11 @@ async function buildEnvironment( } } - // const outputBuildError = (e: RollupError) => { - // enhanceRollupError(e) - // clearLine() - // logger.error(e.message, { error: e }) - // } + const outputBuildError = (e: RollupError) => { + enhanceRollupError(e) + clearLine() + logger.error(e.message, { error: e }) + } const isSsrTargetWebworkerEnvironment = environment.name === 'ssr' && @@ -831,42 +832,44 @@ async function buildEnvironment( ) // watch file changes with rollup - // if (options.watch) { - // logger.info(colors.cyan(`\nwatching for file changes...`)) - - // const resolvedChokidarOptions = resolveChokidarOptions( - // options.watch.chokidar, - // resolvedOutDirs, - // emptyOutDir, - // environment.config.cacheDir, - // ) - - // const { watch } = await import('rollup') - // const watcher = watch({ - // ...rollupOptions, - // output: normalizedOutputs, - // watch: { - // ...options.watch, - // chokidar: resolvedChokidarOptions, - // }, - // }) - - // watcher.on('event', (event) => { - // if (event.code === 'BUNDLE_START') { - // logger.info(colors.cyan(`\nbuild started...`)) - // if (options.write) { - // prepareOutDir(resolvedOutDirs, emptyOutDir, environment) - // } - // } else if (event.code === 'BUNDLE_END') { - // event.result.close() - // logger.info(colors.cyan(`built in ${event.duration}ms.`)) - // } else if (event.code === 'ERROR') { - // outputBuildError(event.error) - // } - // }) - - // return watcher - // } + if (options.watch) { + logger.info(colors.cyan(`\nwatching for file changes...`)) + + const resolvedChokidarOptions = resolveChokidarOptions( + // @ts-expect-error chokidar option does not exist in rolldown but used for backward compat + options.watch.chokidar, + resolvedOutDirs, + emptyOutDir, + environment.config.cacheDir, + ) + + const { watch } = await import('rolldown') + const watcher = watch({ + ...rollupOptions, + output: normalizedOutputs, + watch: { + ...options.watch, + notify: convertToNotifyOptions(resolvedChokidarOptions), + }, + }) + + watcher.on('event', (event) => { + if (event.code === 'BUNDLE_START') { + logger.info(colors.cyan(`\nbuild started...`)) + if (options.write) { + prepareOutDir(resolvedOutDirs, emptyOutDir, environment) + } + } else if (event.code === 'BUNDLE_END') { + // FIXME: https://github.com/rolldown/rolldown/issues/4380 + // event.result.close() + logger.info(colors.cyan(`built in ${event.duration}ms.`)) + } else if (event.code === 'ERROR') { + outputBuildError(event.error) + } + }) + + return watcher + } // write or generate files with rolldown const { rolldown } = await import('rolldown') @@ -1613,7 +1616,7 @@ export interface ViteBuilder { buildApp(): Promise build( environment: BuildEnvironment, - ): Promise + ): Promise } export interface BuilderOptions { diff --git a/packages/vite/src/node/watch.ts b/packages/vite/src/node/watch.ts index ff23ba15db49ff..63f61db51da254 100644 --- a/packages/vite/src/node/watch.ts +++ b/packages/vite/src/node/watch.ts @@ -1,7 +1,7 @@ import { EventEmitter } from 'node:events' import path from 'node:path' import type { FSWatcher, WatchOptions } from 'dep-types/chokidar' -import type { OutputOptions } from 'rolldown' +import type { OutputOptions, WatcherOptions } from 'rolldown' import colors from 'picocolors' import { escapePath } from 'tinyglobby' import { withTrailingSlash } from '../shared/utils' @@ -78,6 +78,16 @@ export function resolveChokidarOptions( return resolvedWatchOptions } +export function convertToNotifyOptions( + options: WatchOptions | undefined, +): WatcherOptions['notify'] { + if (!options) return + + return { + pollInterval: options.usePolling ? (options.interval ?? 100) : undefined, + } +} + class NoopWatcher extends EventEmitter implements FSWatcher { constructor(public options: WatchOptions) { super() diff --git a/playground/assets/__tests__/assets.spec.ts b/playground/assets/__tests__/assets.spec.ts index 632e33bdab27be..3c6cdff90086ed 100644 --- a/playground/assets/__tests__/assets.spec.ts +++ b/playground/assets/__tests__/assets.spec.ts @@ -8,6 +8,7 @@ import { getColor, isBuild, isServe, + isWindows, listAssets, notifyRebuildComplete, page, @@ -633,32 +634,35 @@ test.runIf(isBuild)('manifest', async () => { } }) -// TODO: rolldown does not support rebuild -describe.runIf(isBuild).skip('css and assets in css in build watch', () => { - test('css will not be lost and css does not contain undefined', async () => { - editFile('index.html', (code) => code.replace('Assets', 'assets')) - await notifyRebuildComplete(watcher) - const cssFile = findAssetFile(/index-[-\w]+\.css$/, 'foo') - expect(cssFile).not.toBe('') - expect(cssFile).not.toMatch(/undefined/) - }) +// TODO: skip on Windows due to https://github.com/rolldown/rolldown/issues/4385 +describe.runIf(isBuild && !isWindows)( + 'css and assets in css in build watch', + () => { + test('css will not be lost and css does not contain undefined', async () => { + editFile('index.html', (code) => code.replace('Assets', 'assets')) + await notifyRebuildComplete(watcher) + const cssFile = findAssetFile(/index-[-\w]+\.css$/, 'foo') + expect(cssFile).not.toBe('') + expect(cssFile).not.toMatch(/undefined/) + }) - test('import module.css', async () => { - expect(await getColor('#foo')).toBe('red') - editFile('css/foo.module.css', (code) => code.replace('red', 'blue')) - await notifyRebuildComplete(watcher) - await page.reload() - expect(await getColor('#foo')).toBe('blue') - }) + test('import module.css', async () => { + expect(await getColor('#foo')).toBe('red') + editFile('css/foo.module.css', (code) => code.replace('red', 'blue')) + await notifyRebuildComplete(watcher) + await page.reload() + expect(await getColor('#foo')).toBe('blue') + }) - test('import with raw query', async () => { - expect(await page.textContent('.raw-query')).toBe('foo') - editFile('static/foo.txt', (code) => code.replace('foo', 'zoo')) - await notifyRebuildComplete(watcher) - await page.reload() - expect(await page.textContent('.raw-query')).toBe('zoo') - }) -}) + test('import with raw query', async () => { + expect(await page.textContent('.raw-query')).toBe('foo') + editFile('static/foo.txt', (code) => code.replace('foo', 'zoo')) + await notifyRebuildComplete(watcher) + await page.reload() + expect(await page.textContent('.raw-query')).toBe('zoo') + }) + }, +) test('inline style test', async () => { expect(await getBg('.inline-style')).toMatch(assetMatch) diff --git a/playground/assets/vite.config.js b/playground/assets/vite.config.js index 8dd4eb8c95421b..e0ba18d5e69567 100644 --- a/playground/assets/vite.config.js +++ b/playground/assets/vite.config.js @@ -15,6 +15,6 @@ export default defineConfig({ outDir: 'dist/foo', assetsInlineLimit: 8000, // 8 kB manifest: true, - // watch: {}, + watch: {}, }, }) diff --git a/playground/package.json b/playground/package.json index 3d22afa4721375..932cf49f5a2fa9 100644 --- a/playground/package.json +++ b/playground/package.json @@ -9,6 +9,7 @@ "devDependencies": { "convert-source-map": "^2.0.0", "css-color-names": "^1.0.1", - "kill-port": "^1.6.1" + "kill-port": "^1.6.1", + "rolldown": "1.0.0-beta.8-commit.a720367" } } diff --git a/playground/vitestSetup.ts b/playground/vitestSetup.ts index 2fc8aa706e2251..a8e40e104bff08 100644 --- a/playground/vitestSetup.ts +++ b/playground/vitestSetup.ts @@ -7,7 +7,7 @@ import type { InlineConfig, Logger, PluginOption, - // ResolvedConfig, + ResolvedConfig, UserConfig, ViteDevServer, } from 'vite' @@ -20,7 +20,11 @@ import { preview, } from 'vite' import type { Browser, Page } from 'playwright-chromium' -import type { RollupError, RollupWatcher, RollupWatcherEvent } from 'rollup' +import type { + RolldownWatcher, + RolldownWatcherEvent, + RollupError, +} from 'rolldown' import type { RunnerTestFile } from 'vitest' import { beforeAll, inject } from 'vitest' @@ -70,7 +74,7 @@ export const browserErrors: Error[] = [] export let page: Page = undefined! export let browser: Browser = undefined! export let viteTestUrl: string = '' -export const watcher: RollupWatcher | undefined = undefined +export let watcher: RolldownWatcher | undefined = undefined export function setViteUrl(url: string): void { viteTestUrl = url @@ -242,12 +246,12 @@ export async function startDefaultServe(): Promise { await page.goto(viteTestUrl) } else { process.env.VITE_INLINE = 'inline-build' - // let resolvedConfig: ResolvedConfig + let resolvedConfig: ResolvedConfig // determine build watch const resolvedPlugin: () => PluginOption = () => ({ name: 'vite-plugin-watcher', - configResolved(_config) { - // resolvedConfig = config + configResolved(config) { + resolvedConfig = config }, }) const buildConfig = mergeConfig( @@ -260,13 +264,13 @@ export async function startDefaultServe(): Promise { const builder = await createBuilder(buildConfig) await builder.buildApp() } else { - /* const rollupOutput = */ await build(buildConfig) - // const isWatch = !!resolvedConfig!.build.watch - // // in build watch,call startStaticServer after the build is complete - // if (isWatch) { - // watcher = rollupOutput as RollupWatcher - // await notifyRebuildComplete(watcher) - // } + const rollupOutput = await build(buildConfig) + const isWatch = !!resolvedConfig!.build.watch + // in build watch,call startStaticServer after the build is complete + if (isWatch) { + watcher = rollupOutput as RolldownWatcher + await notifyRebuildComplete(watcher) + } if (buildConfig.__test__) { buildConfig.__test__() } @@ -293,19 +297,23 @@ export async function startDefaultServe(): Promise { * Send the rebuild complete message in build watch */ export async function notifyRebuildComplete( - watcher: RollupWatcher, -): Promise { + watcher: RolldownWatcher, +): Promise { let resolveFn: undefined | (() => void) - const callback = (event: RollupWatcherEvent): void => { + const callback = (event: RolldownWatcherEvent): void => { if (event.code === 'END') { resolveFn?.() + resolveFn = undefined // set to undefined instead of watcher.off for now } } watcher.on('event', callback) await new Promise((resolve) => { resolveFn = resolve }) - return watcher.off('event', callback) + + // TODO: not supported yet (https://github.com/rolldown/rolldown/issues/4382) + // return watcher.off('event', callback) + return watcher } export function createInMemoryLogger(logs: string[]): Logger { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 150ca5d8c19ca6..a0a71767b009cb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -528,6 +528,9 @@ importers: kill-port: specifier: ^1.6.1 version: 1.6.1 + rolldown: + specifier: 1.0.0-beta.8-commit.a720367 + version: 1.0.0-beta.8-commit.a720367(@oxc-project/runtime@0.67.0) playground/alias: dependencies: From f5d2494b61db5bc29639cda880bdaa3f119758e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Thu, 1 May 2025 14:09:45 +0900 Subject: [PATCH 092/102] feat(types): add `shouldTransformCachedModule` for compat (#150) --- packages/vite/src/node/plugin.ts | 17 +++++++++++++++++ packages/vite/src/node/plugins/worker.ts | 10 +++++----- .../src/node/plugins/workerImportMetaUrl.ts | 15 +++++++++------ 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/packages/vite/src/node/plugin.ts b/packages/vite/src/node/plugin.ts index 8abdfb14d89137..f8c90a4d27e254 100644 --- a/packages/vite/src/node/plugin.ts +++ b/packages/vite/src/node/plugin.ts @@ -315,6 +315,23 @@ export interface Plugin extends RolldownPlugin { ctx: HmrContext, ) => Array | void | Promise | void> > + + /** + * This hook is not supported by Rolldown yet. But the type is declared for compatibility. + * + * @deprecated This hook is **not** deprecated. It is marked as deprecated just to make it clear that this hook is currently a no-op. + */ + shouldTransformCachedModule?: ObjectHook< + ( + this: PluginContext, + options: { + code: string + id: string + meta: CustomPluginOptions + moduleSideEffects: boolean | 'no-treeshake' + }, + ) => boolean | null | void + > } export type HookHandler = T extends ObjectHook ? H : T diff --git a/packages/vite/src/node/plugins/worker.ts b/packages/vite/src/node/plugins/worker.ts index dea44e152b8cc3..3c3a5c54a810e2 100644 --- a/packages/vite/src/node/plugins/worker.ts +++ b/packages/vite/src/node/plugins/worker.ts @@ -311,11 +311,11 @@ export function webWorkerPlugin(config: ResolvedConfig): Plugin { }, }, - // shouldTransformCachedModule({ id }) { - // if (isBuild && config.build.watch && workerOrSharedWorkerRE.test(id)) { - // return true - // } - // }, + shouldTransformCachedModule({ id }) { + if (isBuild && config.build.watch && workerOrSharedWorkerRE.test(id)) { + return true + } + }, transform: { filter: { diff --git a/packages/vite/src/node/plugins/workerImportMetaUrl.ts b/packages/vite/src/node/plugins/workerImportMetaUrl.ts index d90f3dc8a1874a..742fb2e27b11c8 100644 --- a/packages/vite/src/node/plugins/workerImportMetaUrl.ts +++ b/packages/vite/src/node/plugins/workerImportMetaUrl.ts @@ -180,6 +180,9 @@ async function getWorkerType( return 'classic' } +const workerImportMetaUrlRE = + /new\s+(?:Worker|SharedWorker).+new\s+URL.+import\.meta\.url/s + export function workerImportMetaUrlPlugin(config: ResolvedConfig): Plugin { const isBuild = config.command === 'build' let workerResolver: ResolveIdFn @@ -200,15 +203,15 @@ export function workerImportMetaUrlPlugin(config: ResolvedConfig): Plugin { return environment.config.consumer === 'client' }, - // shouldTransformCachedModule({ code }) { - // if (isBuild && config.build.watch && isIncludeWorkerImportMetaUrl(code)) { - // return true - // } - // }, + shouldTransformCachedModule({ code }) { + if (isBuild && config.build.watch && workerImportMetaUrlRE.test(code)) { + return true + } + }, transform: { filter: { - code: /new\s+(?:Worker|SharedWorker).+new\s+URL.+import\.meta\.url/s, + code: workerImportMetaUrlRE, }, async handler(code, id) { let s: MagicString | undefined From 9b83bd1fe699e3d9f49e950b04d7ec30c94e3977 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Fri, 2 May 2025 11:02:18 +0900 Subject: [PATCH 093/102] feat: update rolldown --- packages/vite/package.json | 2 +- playground/package.json | 2 +- pnpm-lock.yaml | 110 ++++++++++++++++++------------------- 3 files changed, 57 insertions(+), 57 deletions(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index 93ead4f218a9de..7a0e5427a7269c 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -90,7 +90,7 @@ "lightningcss": "^1.29.3", "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rolldown": "1.0.0-beta.8-commit.a720367", + "rolldown": "1.0.0-beta.8-commit.bc78fa1", "tinyglobby": "^0.2.13" }, "optionalDependencies": { diff --git a/playground/package.json b/playground/package.json index 932cf49f5a2fa9..c7b459b1a2f3fe 100644 --- a/playground/package.json +++ b/playground/package.json @@ -10,6 +10,6 @@ "convert-source-map": "^2.0.0", "css-color-names": "^1.0.1", "kill-port": "^1.6.1", - "rolldown": "1.0.0-beta.8-commit.a720367" + "rolldown": "1.0.0-beta.8-commit.bc78fa1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a0a71767b009cb..ba3b4aa22d7d2b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -239,8 +239,8 @@ importers: specifier: ^8.5.3 version: 8.5.3 rolldown: - specifier: 1.0.0-beta.8-commit.a720367 - version: 1.0.0-beta.8-commit.a720367(@oxc-project/runtime@0.67.0) + specifier: 1.0.0-beta.8-commit.bc78fa1 + version: 1.0.0-beta.8-commit.bc78fa1(@oxc-project/runtime@0.67.0) tinyglobby: specifier: ^0.2.13 version: 0.2.13 @@ -529,8 +529,8 @@ importers: specifier: ^1.6.1 version: 1.6.1 rolldown: - specifier: 1.0.0-beta.8-commit.a720367 - version: 1.0.0-beta.8-commit.a720367(@oxc-project/runtime@0.67.0) + specifier: 1.0.0-beta.8-commit.bc78fa1 + version: 1.0.0-beta.8-commit.bc78fa1(@oxc-project/runtime@0.67.0) playground/alias: dependencies: @@ -3019,63 +3019,63 @@ packages: resolution: {integrity: sha512-TvCl79Y8v18ZhFGd5mjO1kYPovSBq3+4LVCi5Nfl1JI8fS8i8kXbgQFGwBJRXczim8GlW8c2LMBKTtExYXOy/A==} engines: {node: '>=18'} - '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.a720367': - resolution: {integrity: sha512-26qGoMZ3lpNqu+4G4x3PNM55hJx/ZAtDTqcKoQCwUPbqXFXq7WCoL1CdjgyW0IHbHuo9B+mbJ3X2ZJCY+PWn/g==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.bc78fa1': + resolution: {integrity: sha512-YN4E2xf6MsKsHHdMWdewTzEE/1LZ2Uom9QRg8iQ1GraChjNXvU1ZebVmTflwn5TSaBn7AO+lG5yL2eVJRTuUOA==} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.a720367': - resolution: {integrity: sha512-hZX9u8O7rFJtcTBXVk5sTDz+XKdVfAWpVWqg1q+GqMXtQnCw6mhmqMRW3XelK0spyS8icFbAUAkthmMgPcJRVg==} + '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.bc78fa1': + resolution: {integrity: sha512-CFC7UBJQ6cVvx7R8O11WTK9YdMKt+eASQLD/UbQLjf+Foixl6yKq7vizjtWGKXGskXiFqdGQs40f/EM1uVb2KA==} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.a720367': - resolution: {integrity: sha512-rCFjPJxHlo+bhpC3yqhpQ1cx/my8FoUfLxrnpkto0gW5Es8rD1lVnp5v4PSgvmF9E4rFxIUKJTdJL/58t0dKpg==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.bc78fa1': + resolution: {integrity: sha512-1vpb7XOtgpvDaSVKeGi1N6O4bqDJWsWiyFScniHEWrnBEBBAfGBwt6vKshBrKgXODtHtzjKb9YXWGdYS7NIwCg==} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.a720367': - resolution: {integrity: sha512-/Nnnho+E8ekN2ucRe+l8uUwp+moUYyywKeTZ9oD7c6TB2SxQgN2Pryr7LjLwwCMeufqzCqfC1FPznWX2NQEkVA==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.bc78fa1': + resolution: {integrity: sha512-Y+NBFnwU0jAeYwoxRloLl6mXnnKduRTdJMeGQy0fJYMTcyMBBtJGavzz/GiUg8XfaW26Wfc/oCaM5w74u4fYHw==} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.a720367': - resolution: {integrity: sha512-yeq5LLFCZFxwRoxiGxvmZWQylZX6zPGJGoMvrL+0hq0BNxEoHhZeYpd3D2ULHV7sxpfzPdfMJbRqpYh5aaZVwA==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.bc78fa1': + resolution: {integrity: sha512-KM8CKGOsBFLwurE4LEZLZjg8lbOXRkRW0ikWDKpqA1MHD3vydeB27mYCXrNWNmLg7cYS/G9moaDk9KuXMw2CqQ==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.a720367': - resolution: {integrity: sha512-aKeTbf1uVoENYtobcRXc/EaI+xfVL7+JnReNosiC6olPguwVy2iV0JAm75dD15EUxhhc+KTJE5ybFnBPhPKCXA==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.bc78fa1': + resolution: {integrity: sha512-NrEp8H9Lx2pzd19uN+3/dv1m+dlNtzy5/XoG22xq8usiJxdrqGNQAdkak5xgePWNp6fYw6+7O058VBTCbZ8Hag==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.a720367': - resolution: {integrity: sha512-al0R+u9xV+vlB9oRkTpmqThyHzDFhFI4WZ5gZffxlMO5E+72Z9p75hO/gD7taaXNWDy/b7CJ7osTP6we3qvR7Q==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.bc78fa1': + resolution: {integrity: sha512-x1MtBQ+ES34j34O4r7b7WIxBNklGp/on8NnkaJb7SLlHgVq5sKQIhCahrPvYqnFIiIbTVHmNimqtSNae9O3W0g==} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.a720367': - resolution: {integrity: sha512-4qtd2eaaU9jsl1NSmGoYgWSZDHxyYPhq0YROjqJ0g8sChgD+QlT9Ocw6IGctXHJ1prpMvUjCBg/cHgNMi1+eIg==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.bc78fa1': + resolution: {integrity: sha512-Mw74+R4aUFSZkpw17nlozPP1dFNKX+PBMrcPOF30d32ztCv3BGwdGygZnfUF5fHMzjjOiqcRg5SCrCq9Zsm5hQ==} cpu: [x64] os: [linux] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.a720367': - resolution: {integrity: sha512-BaKwi5gBII+NyIgbMnc2JRwP5WbS/LYWLxKK1UE3+UDesj9DUwVGRLY8BBWtCOZbkEbb4JW5c1YFnM2FwuPqtw==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.bc78fa1': + resolution: {integrity: sha512-1KeF4wA95UB2clvOahW0nzFYhIYfe/ftfvwCFSgks4/PGk/UJt5ilU4A43QrRxJyz3jHg5Thaw3laHXyeTJr2w==} engines: {node: '>=14.21.3'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.a720367': - resolution: {integrity: sha512-eOxYXfTUtyLIquP4fc/ukssQ4cTOI5gKjPOYP1wWuXmooMm2JAKaWQBK7lR6PUB0kMIkBetuRHkHAZOSeMgTzQ==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.bc78fa1': + resolution: {integrity: sha512-32whIfM/xLzHobfa+glWgn+In4I7penMjcyMSU1yYIwQ9yAdcQ/WFUYJklvKiS7ZZ05klPPkdFS6RjnQjR9h+w==} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.a720367': - resolution: {integrity: sha512-Duqr7VYgauILr6ePI10j3MDTB1vBggHMuvkRchHkvs+55LM7kbBwpMva3NjxIOge07x/HGJAOVJBqys/8W7epg==} + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.bc78fa1': + resolution: {integrity: sha512-3xg/d3l/zvY+egOYgC+TwEni6axfmYn06bAZZW/FF3fpKasRotMPnvRZw2WZl99FI3EEtKcVfArYM7wCPBZqVA==} cpu: [ia32] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.a720367': - resolution: {integrity: sha512-z+mlPRnw5ojI9G4BDk/aDqgZfpc+W4e4tmdbMo0gkeboeabb0JHMBDxey2hCUff7oD+sMsdsurWtfqxMj+T90A==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.bc78fa1': + resolution: {integrity: sha512-GwpOr7F01pAGAJQBulVfEE1mymHNnubc/IRf46tC15fUeq8jvZllxu0BRH/vwb9duCev9i/OsSFc4YIPbTuwPg==} cpu: [x64] os: [win32] @@ -6735,8 +6735,8 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rolldown@1.0.0-beta.8-commit.a720367: - resolution: {integrity: sha512-qsKYH3zQz8iKW3OO6vAgSsw+SmZb+M4f68bYB/Jo9fK5BUbQ+G/5Zmfjze/R0SepQPu1dTLo/qqFS7+UhfqVGw==} + rolldown@1.0.0-beta.8-commit.bc78fa1: + resolution: {integrity: sha512-40NXNKaiSfg3pfPnX/FFgTLSvVu//yFGmoVKK602Txjo3lneZ79lRguua9SyJYozbYAkDQ/BbJUNSX0k+xOnSg==} hasBin: true peerDependencies: '@oxc-project/runtime': 0.67.0 @@ -9020,42 +9020,42 @@ snapshots: '@publint/pack@0.1.1': {} - '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.a720367': + '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.bc78fa1': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.a720367': + '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.bc78fa1': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.a720367': + '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.bc78fa1': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.a720367': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.bc78fa1': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.a720367': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.bc78fa1': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.a720367': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.bc78fa1': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.a720367': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.bc78fa1': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.a720367': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.bc78fa1': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.a720367': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.bc78fa1': dependencies: '@napi-rs/wasm-runtime': 0.2.9 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.a720367': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.bc78fa1': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.a720367': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.bc78fa1': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.a720367': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.bc78fa1': optional: true '@rollup/plugin-alias@5.1.1(rollup@4.34.9)': @@ -12889,24 +12889,24 @@ snapshots: rfdc@1.4.1: {} - rolldown@1.0.0-beta.8-commit.a720367(@oxc-project/runtime@0.67.0): + rolldown@1.0.0-beta.8-commit.bc78fa1(@oxc-project/runtime@0.67.0): dependencies: '@oxc-project/types': 0.67.0 ansis: 3.17.0 optionalDependencies: '@oxc-project/runtime': 0.67.0 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.8-commit.a720367 - '@rolldown/binding-darwin-x64': 1.0.0-beta.8-commit.a720367 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.8-commit.a720367 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.8-commit.a720367 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.8-commit.a720367 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.8-commit.a720367 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.8-commit.a720367 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.8-commit.a720367 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.8-commit.a720367 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.8-commit.a720367 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.8-commit.a720367 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.8-commit.a720367 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.8-commit.bc78fa1 + '@rolldown/binding-darwin-x64': 1.0.0-beta.8-commit.bc78fa1 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.8-commit.bc78fa1 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.8-commit.bc78fa1 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.8-commit.bc78fa1 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.8-commit.bc78fa1 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.8-commit.bc78fa1 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.8-commit.bc78fa1 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.8-commit.bc78fa1 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.8-commit.bc78fa1 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.8-commit.bc78fa1 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.8-commit.bc78fa1 rollup-plugin-dts@6.2.1(rollup@4.34.9)(typescript@5.7.3): dependencies: From ab53aa3a6680dae16d1535ba3725a4d6c0a9e91e Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Fri, 2 May 2025 11:12:04 +0900 Subject: [PATCH 094/102] release: v6.3.7 --- packages/create-vite/template-lit-ts/package.json | 2 +- packages/create-vite/template-lit/package.json | 2 +- packages/create-vite/template-preact-ts/package.json | 2 +- packages/create-vite/template-preact/package.json | 2 +- packages/create-vite/template-qwik-ts/package.json | 2 +- packages/create-vite/template-qwik/package.json | 2 +- packages/create-vite/template-react-ts/package.json | 2 +- packages/create-vite/template-react/package.json | 2 +- packages/create-vite/template-solid-ts/package.json | 2 +- packages/create-vite/template-solid/package.json | 2 +- packages/create-vite/template-svelte-ts/package.json | 2 +- packages/create-vite/template-svelte/package.json | 2 +- packages/create-vite/template-vanilla-ts/package.json | 2 +- packages/create-vite/template-vanilla/package.json | 2 +- packages/create-vite/template-vue-ts/package.json | 2 +- packages/create-vite/template-vue/package.json | 2 +- packages/vite/CHANGELOG.md | 8 ++++++++ packages/vite/package.json | 2 +- 18 files changed, 25 insertions(+), 17 deletions(-) diff --git a/packages/create-vite/template-lit-ts/package.json b/packages/create-vite/template-lit-ts/package.json index 3f4ef6588f2e1d..0d7213b07a10a7 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.8.3", - "vite": "npm:rolldown-vite@^6.3.6" + "vite": "npm:rolldown-vite@^6.3.7" } } diff --git a/packages/create-vite/template-lit/package.json b/packages/create-vite/template-lit/package.json index 676239080dc5c5..8b012c4aa36c67 100644 --- a/packages/create-vite/template-lit/package.json +++ b/packages/create-vite/template-lit/package.json @@ -12,6 +12,6 @@ "lit": "^3.3.0" }, "devDependencies": { - "vite": "npm:rolldown-vite@^6.3.6" + "vite": "npm:rolldown-vite@^6.3.7" } } diff --git a/packages/create-vite/template-preact-ts/package.json b/packages/create-vite/template-preact-ts/package.json index 3e237b99203587..95bdb1be9702bf 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.8.3", - "vite": "npm:rolldown-vite@^6.3.6" + "vite": "npm:rolldown-vite@^6.3.7" } } diff --git a/packages/create-vite/template-preact/package.json b/packages/create-vite/template-preact/package.json index 1f102e57198b8e..8f9d2fe22a82d4 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": "npm:rolldown-vite@^6.3.6" + "vite": "npm:rolldown-vite@^6.3.7" } } diff --git a/packages/create-vite/template-qwik-ts/package.json b/packages/create-vite/template-qwik-ts/package.json index 3679057ad99df6..1d72307138d875 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.8.3", - "vite": "npm:rolldown-vite@^6.3.6" + "vite": "npm:rolldown-vite@^6.3.7" }, "dependencies": { "@builder.io/qwik": "^1.13.0" diff --git a/packages/create-vite/template-qwik/package.json b/packages/create-vite/template-qwik/package.json index 93895d3aa9e69e..5b8cbc168ed36d 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": "npm:rolldown-vite@^6.3.6" + "vite": "npm:rolldown-vite@^6.3.7" }, "dependencies": { "@builder.io/qwik": "^1.13.0" diff --git a/packages/create-vite/template-react-ts/package.json b/packages/create-vite/template-react-ts/package.json index 7ffec480acfee3..14e6b374903902 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.8.3", "typescript-eslint": "^8.30.1", - "vite": "npm:rolldown-vite@^6.3.6" + "vite": "npm:rolldown-vite@^6.3.7" } } diff --git a/packages/create-vite/template-react/package.json b/packages/create-vite/template-react/package.json index 5341501514957b..f142a405cd28c9 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": "npm:rolldown-vite@^6.3.6" + "vite": "npm:rolldown-vite@^6.3.7" } } diff --git a/packages/create-vite/template-solid-ts/package.json b/packages/create-vite/template-solid-ts/package.json index a7f400971c118f..4ba8ef6cbddcc7 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.8.3", - "vite": "npm:rolldown-vite@^6.3.6", + "vite": "npm:rolldown-vite@^6.3.7", "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 6de2aa7e573418..44330cb702f11e 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": "npm:rolldown-vite@^6.3.6", + "vite": "npm:rolldown-vite@^6.3.7", "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 3150d94a8e2872..0e685c90c46dca 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.28.1", "svelte-check": "^4.1.6", "typescript": "~5.8.3", - "vite": "npm:rolldown-vite@^6.3.6" + "vite": "npm:rolldown-vite@^6.3.7" } } diff --git a/packages/create-vite/template-svelte/package.json b/packages/create-vite/template-svelte/package.json index 6bc7d9d0ecaa46..88f58f39247c80 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.27.0", - "vite": "npm:rolldown-vite@^6.3.6" + "vite": "npm:rolldown-vite@^6.3.7" } } diff --git a/packages/create-vite/template-vanilla-ts/package.json b/packages/create-vite/template-vanilla-ts/package.json index 81847d2b6cf34a..b0c620fec7754b 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.8.3", - "vite": "npm:rolldown-vite@^6.3.6" + "vite": "npm:rolldown-vite@^6.3.7" } } diff --git a/packages/create-vite/template-vanilla/package.json b/packages/create-vite/template-vanilla/package.json index 3b3e5dc264266c..eaee94f53c8cea 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": "npm:rolldown-vite@^6.3.6" + "vite": "npm:rolldown-vite@^6.3.7" } } diff --git a/packages/create-vite/template-vue-ts/package.json b/packages/create-vite/template-vue-ts/package.json index ca604fcbb3eb91..4a9ea2e107cb35 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.3", "@vue/tsconfig": "^0.7.0", "typescript": "~5.8.3", - "vite": "npm:rolldown-vite@^6.3.6", + "vite": "npm:rolldown-vite@^6.3.7", "vue-tsc": "^2.2.8" } } diff --git a/packages/create-vite/template-vue/package.json b/packages/create-vite/template-vue/package.json index 4206fc5100a33b..33c2fe2976f91d 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.3", - "vite": "npm:rolldown-vite@^6.3.6" + "vite": "npm:rolldown-vite@^6.3.7" } } diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index 0e3d0b3526ad11..b76345c9bacc29 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,11 @@ +## 6.3.7 (2025-05-02) + +* feat: update rolldown ([9b83bd1](https://github.com/vitejs/rolldown-vite/commit/9b83bd1)) +* feat: use Rolldown's watch API (#67) ([2b287c6](https://github.com/vitejs/rolldown-vite/commit/2b287c6)), closes [#67](https://github.com/vitejs/rolldown-vite/issues/67) +* feat(types): add `shouldTransformCachedModule` for compat (#150) ([f5d2494](https://github.com/vitejs/rolldown-vite/commit/f5d2494)), closes [#150](https://github.com/vitejs/rolldown-vite/issues/150) + + + ## 6.3.6 (2025-05-01) * fix: check static serve file inside sirv (#19965) ([c22c43d](https://github.com/vitejs/rolldown-vite/commit/c22c43d)), closes [#19965](https://github.com/vitejs/rolldown-vite/issues/19965) diff --git a/packages/vite/package.json b/packages/vite/package.json index 7a0e5427a7269c..353a2b2947098f 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "rolldown-vite", - "version": "6.3.6", + "version": "6.3.7", "type": "module", "license": "MIT", "author": "Evan You", From 1b31e92e263f7d8e2c6eb83ab3f9d412262d08c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Fri, 2 May 2025 12:12:48 +0900 Subject: [PATCH 095/102] feat(types): add `Rollup.RollupWatcherEvent` type (#152) --- packages/vite/types/internal/rollupTypeCompat.d.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/vite/types/internal/rollupTypeCompat.d.ts b/packages/vite/types/internal/rollupTypeCompat.d.ts index c101efe69dea5d..e7634c7f5d1b13 100644 --- a/packages/vite/types/internal/rollupTypeCompat.d.ts +++ b/packages/vite/types/internal/rollupTypeCompat.d.ts @@ -19,3 +19,6 @@ export type RollupPluginOption = Rolldown.RolldownPluginOption /** @deprecated use RolldownWatcher instead */ export type RollupWatcher = Rolldown.RolldownWatcher + +/** @deprecated use RollupWatcherEvent instead */ +export type RollupWatcherEvent = Rolldown.RolldownWatcherEvent From 2fed74fbd4d2570126181d27e47710306ca0d550 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Wed, 7 May 2025 11:17:27 +0900 Subject: [PATCH 096/102] feat: update rolldown --- packages/vite/package.json | 6 +- .../src/node/__tests__/plugins/define.spec.ts | 2 +- playground/lib/__tests__/lib.spec.ts | 6 +- playground/minify/__tests__/minify.spec.ts | 2 +- playground/minify/vite.config.js | 1 + playground/package.json | 2 +- pnpm-lock.yaml | 136 +++++++++--------- 7 files changed, 79 insertions(+), 76 deletions(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index 353a2b2947098f..0de09a039bf217 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -85,12 +85,12 @@ }, "//": "READ CONTRIBUTING.md to understand what to put under deps vs. devDeps!", "dependencies": { - "@oxc-project/runtime": "0.67.0", + "@oxc-project/runtime": "0.68.1", "fdir": "^6.4.4", "lightningcss": "^1.29.3", "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rolldown": "1.0.0-beta.8-commit.bc78fa1", + "rolldown": "1.0.0-beta.8-commit.c76291c", "tinyglobby": "^0.2.13" }, "optionalDependencies": { @@ -100,7 +100,7 @@ "@ampproject/remapping": "^2.3.0", "@babel/parser": "^7.27.0", "@jridgewell/trace-mapping": "^0.3.25", - "@oxc-project/types": "0.67.0", + "@oxc-project/types": "0.68.1", "@polka/compression": "^1.0.0-next.25", "@rollup/plugin-alias": "^5.1.1", "@rollup/plugin-commonjs": "^28.0.3", diff --git a/packages/vite/src/node/__tests__/plugins/define.spec.ts b/packages/vite/src/node/__tests__/plugins/define.spec.ts index 915d36e167c787..ca88a177ff7343 100644 --- a/packages/vite/src/node/__tests__/plugins/define.spec.ts +++ b/packages/vite/src/node/__tests__/plugins/define.spec.ts @@ -60,7 +60,7 @@ describe('definePlugin', () => { // assert that the default behavior is to replace import.meta.hot with undefined const transform = await createDefinePluginTransform() expect(await transform('const hot = import.meta.hot;')).toBe( - 'const hot = undefined;\n', + 'const hot = void 0;\n', ) // assert that we can specify a user define to preserve import.meta.hot const overrideTransform = await createDefinePluginTransform({ diff --git a/playground/lib/__tests__/lib.spec.ts b/playground/lib/__tests__/lib.spec.ts index 5b575373b848bd..8386d5f125f9a8 100644 --- a/playground/lib/__tests__/lib.spec.ts +++ b/playground/lib/__tests__/lib.spec.ts @@ -22,7 +22,7 @@ describe.runIf(isBuild)('build', () => { ) const namedCode = readFile('dist/named/my-lib-named.umd.cjs') // esbuild helpers are injected inside of the UMD wrapper - expect(code).toMatch(/^\(function\(/) + expect(code).toMatch(/^\/\*[^*]*\*\/\s*\(function\(/) expect(noMinifyCode).toMatch( /^\/\*[^*]*\*\/\s*\(function\(global.+?"use strict";\s*var.+?function\smyLib\(/s, ) @@ -37,7 +37,9 @@ describe.runIf(isBuild)('build', () => { ) const namedCode = readFile('dist/named/my-lib-named.iife.js') // esbuild helpers are injected inside of the IIFE wrapper - expect(code).toMatch(/^var MyLib=function\(\)\{\s*"use strict";/) + expect(code).toMatch( + /^\/\*[^*]*\*\/\s*var MyLib=function\(\)\{\s*"use strict";/, + ) expect(noMinifyCode).toMatch( /^\/\*[^*]*\*\/\s*var MyLib\s*=\s*function\(\)\s*\{\s*"use strict";/, ) diff --git a/playground/minify/__tests__/minify.spec.ts b/playground/minify/__tests__/minify.spec.ts index 2b0fc6e33f665f..e7449449f8c40d 100644 --- a/playground/minify/__tests__/minify.spec.ts +++ b/playground/minify/__tests__/minify.spec.ts @@ -13,7 +13,7 @@ test.runIf(isBuild)('no minifySyntax', () => { const cssFile = files.find((f) => f.endsWith('.css')) const cssContent = readFile(path.resolve(assetsDir, cssFile)) - expect(jsContent).toContain('console.log(`hello world`)') + expect(jsContent).toContain('console.log("hello world")') expect(jsContent).not.toContain('/*! explicit comment */') expect(cssContent).toContain('color:#ff0000') diff --git a/playground/minify/vite.config.js b/playground/minify/vite.config.js index a43b14a0d11d30..69b96c12569ea7 100644 --- a/playground/minify/vite.config.js +++ b/playground/minify/vite.config.js @@ -6,6 +6,7 @@ export default defineConfig({ minifySyntax: false, }, build: { + minify: 'esbuild', cssMinify: 'esbuild', }, }) diff --git a/playground/package.json b/playground/package.json index c7b459b1a2f3fe..2e58af07b5de84 100644 --- a/playground/package.json +++ b/playground/package.json @@ -10,6 +10,6 @@ "convert-source-map": "^2.0.0", "css-color-names": "^1.0.1", "kill-port": "^1.6.1", - "rolldown": "1.0.0-beta.8-commit.bc78fa1" + "rolldown": "1.0.0-beta.8-commit.c76291c" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ba3b4aa22d7d2b..55b5966cc149cd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -224,8 +224,8 @@ importers: packages/vite: dependencies: '@oxc-project/runtime': - specifier: 0.67.0 - version: 0.67.0 + specifier: 0.68.1 + version: 0.68.1 fdir: specifier: ^6.4.4 version: 6.4.4(picomatch@4.0.2) @@ -239,8 +239,8 @@ importers: specifier: ^8.5.3 version: 8.5.3 rolldown: - specifier: 1.0.0-beta.8-commit.bc78fa1 - version: 1.0.0-beta.8-commit.bc78fa1(@oxc-project/runtime@0.67.0) + specifier: 1.0.0-beta.8-commit.c76291c + version: 1.0.0-beta.8-commit.c76291c(@oxc-project/runtime@0.68.1) tinyglobby: specifier: ^0.2.13 version: 0.2.13 @@ -255,8 +255,8 @@ importers: specifier: ^0.3.25 version: 0.3.25 '@oxc-project/types': - specifier: 0.67.0 - version: 0.67.0 + specifier: 0.68.1 + version: 0.68.1 '@polka/compression': specifier: ^1.0.0-next.25 version: 1.0.0-next.25 @@ -529,8 +529,8 @@ importers: specifier: ^1.6.1 version: 1.6.1 rolldown: - specifier: 1.0.0-beta.8-commit.bc78fa1 - version: 1.0.0-beta.8-commit.bc78fa1(@oxc-project/runtime@0.67.0) + specifier: 1.0.0-beta.8-commit.c76291c + version: 1.0.0-beta.8-commit.c76291c(@oxc-project/runtime@0.68.1) playground/alias: dependencies: @@ -2911,12 +2911,12 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@oxc-project/runtime@0.67.0': - resolution: {integrity: sha512-2sFnKBxAlzdxcPNQaQ4GlMx6U4EGFgyLgCM/b6DHHXjxrh8CucCtD6RTMPGRWfkY4tyEAtqUzi7epdhzzPc/1Q==} + '@oxc-project/runtime@0.68.1': + resolution: {integrity: sha512-MMPhKwVPyykU7F6id79Bb9DAM8BqT3HbJNRxJnuh68uARDDAEn252dq/AjSa3i8JWmtnKZIdm+ORAyjFZD7bzQ==} engines: {node: '>=6.9.0'} - '@oxc-project/types@0.67.0': - resolution: {integrity: sha512-AI7inoYvnVro7b8S2Z+Fxi295xQvNKLP1CM/xzx5il4R3aiGgnFt9qiXaRo9vIutataX8AjHcaPnOsjdcItU0w==} + '@oxc-project/types@0.68.1': + resolution: {integrity: sha512-Q/H52+HXPPxuIHwQnVkEM8GebLnNcokkI4zQQdbxLIZdfxMGhAm9+gEqsMku3t95trN/1titHUmCM9NxbKaE2g==} '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} @@ -3019,63 +3019,63 @@ packages: resolution: {integrity: sha512-TvCl79Y8v18ZhFGd5mjO1kYPovSBq3+4LVCi5Nfl1JI8fS8i8kXbgQFGwBJRXczim8GlW8c2LMBKTtExYXOy/A==} engines: {node: '>=18'} - '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.bc78fa1': - resolution: {integrity: sha512-YN4E2xf6MsKsHHdMWdewTzEE/1LZ2Uom9QRg8iQ1GraChjNXvU1ZebVmTflwn5TSaBn7AO+lG5yL2eVJRTuUOA==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.c76291c': + resolution: {integrity: sha512-z0bulabL226ciSH6Xz2AuoAEohLRwPTv9qc3qBBHvdnYnBDQaK7HDFa2L84H2DKWI1r5si4JEDgv7H/TUdS9lA==} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.bc78fa1': - resolution: {integrity: sha512-CFC7UBJQ6cVvx7R8O11WTK9YdMKt+eASQLD/UbQLjf+Foixl6yKq7vizjtWGKXGskXiFqdGQs40f/EM1uVb2KA==} + '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.c76291c': + resolution: {integrity: sha512-vXjDtZxjZdx8LccYBnNNp2Yd0mU7ZS7tK9nOPq5M1kH5XgB5kE7rFwrZicmJWWRkVYFubh2SVRBuL/yNCZBbxw==} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.bc78fa1': - resolution: {integrity: sha512-1vpb7XOtgpvDaSVKeGi1N6O4bqDJWsWiyFScniHEWrnBEBBAfGBwt6vKshBrKgXODtHtzjKb9YXWGdYS7NIwCg==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.c76291c': + resolution: {integrity: sha512-t2pmx9CyeLEfd7uUzVHY7+dmWQZROdv4HOdhj/v4930yCJ9Nlm5SUwnQr274VqFnpW6yksQYbqLWnXCWWBV6vA==} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.bc78fa1': - resolution: {integrity: sha512-Y+NBFnwU0jAeYwoxRloLl6mXnnKduRTdJMeGQy0fJYMTcyMBBtJGavzz/GiUg8XfaW26Wfc/oCaM5w74u4fYHw==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.c76291c': + resolution: {integrity: sha512-7R62A7FKnY+pqArhju9g3czhXNg1LhmcqwMFO0ek2zaOO8ofEECSVQGqQAPctjKOMB312bWqfpziYY4dAQLNlQ==} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.bc78fa1': - resolution: {integrity: sha512-KM8CKGOsBFLwurE4LEZLZjg8lbOXRkRW0ikWDKpqA1MHD3vydeB27mYCXrNWNmLg7cYS/G9moaDk9KuXMw2CqQ==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.c76291c': + resolution: {integrity: sha512-Tk3cRfyrt55ewiB2BgEcdh2EKU6axvgNpEKaQ5EMaKWX8yof2QPmSPSlCTpmIgCT5w/KEVCa3tf2ZhSeM6WmLQ==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.bc78fa1': - resolution: {integrity: sha512-NrEp8H9Lx2pzd19uN+3/dv1m+dlNtzy5/XoG22xq8usiJxdrqGNQAdkak5xgePWNp6fYw6+7O058VBTCbZ8Hag==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.c76291c': + resolution: {integrity: sha512-KtnGCqz8v5wdm/PYURRFMsF1aF7rAHHopP3dXzFqKHyBdm0vje+r8cVy/97WwKYFxxDmi7f0DZJ0TxxuP5gRnA==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.bc78fa1': - resolution: {integrity: sha512-x1MtBQ+ES34j34O4r7b7WIxBNklGp/on8NnkaJb7SLlHgVq5sKQIhCahrPvYqnFIiIbTVHmNimqtSNae9O3W0g==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.c76291c': + resolution: {integrity: sha512-UoROGcEBmKCPlRyQy9rfDy6IxmWaMQOenHkcWyMhFqJh4JVsWfS6inNd4TF5rKiRy5SzbJwr8qM0j/GjTCGcmw==} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.bc78fa1': - resolution: {integrity: sha512-Mw74+R4aUFSZkpw17nlozPP1dFNKX+PBMrcPOF30d32ztCv3BGwdGygZnfUF5fHMzjjOiqcRg5SCrCq9Zsm5hQ==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.c76291c': + resolution: {integrity: sha512-VJzh1UCukRGUuJIWkVgnXRLLr7G6yrkWo9PrS43swuGyBUb3a54MT4LYJkcEvteJmOg7ejCpENXtsUwnOESJkA==} cpu: [x64] os: [linux] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.bc78fa1': - resolution: {integrity: sha512-1KeF4wA95UB2clvOahW0nzFYhIYfe/ftfvwCFSgks4/PGk/UJt5ilU4A43QrRxJyz3jHg5Thaw3laHXyeTJr2w==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.c76291c': + resolution: {integrity: sha512-IZThgZ9X6q74lYM6JdW2vTy2IAYNzXrhVvRShQqy4DrC+RLhMYZ4C8M4J/sStn2wCTxCWmXVHIi7bZRH5//T6A==} engines: {node: '>=14.21.3'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.bc78fa1': - resolution: {integrity: sha512-32whIfM/xLzHobfa+glWgn+In4I7penMjcyMSU1yYIwQ9yAdcQ/WFUYJklvKiS7ZZ05klPPkdFS6RjnQjR9h+w==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.c76291c': + resolution: {integrity: sha512-BZ8yIlj/XbFS3B0+oJ9kSv1l8vZxWSts3Uxr/SwEQb3QmvHiX04m8Nd6+crzY6Lv7Kj4esWSpB/QpW8a89kqZA==} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.bc78fa1': - resolution: {integrity: sha512-3xg/d3l/zvY+egOYgC+TwEni6axfmYn06bAZZW/FF3fpKasRotMPnvRZw2WZl99FI3EEtKcVfArYM7wCPBZqVA==} + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.c76291c': + resolution: {integrity: sha512-czB8wXEz7NfLGlr9O6f9tTZGFsNaeWv8cF/0Dau95GMlfy5pZ1PzlwcoHKCclT3vROoQOLA1YbGT4HXhgwgzQA==} cpu: [ia32] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.bc78fa1': - resolution: {integrity: sha512-GwpOr7F01pAGAJQBulVfEE1mymHNnubc/IRf46tC15fUeq8jvZllxu0BRH/vwb9duCev9i/OsSFc4YIPbTuwPg==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.c76291c': + resolution: {integrity: sha512-5ndBU5nWh1lC0IB8k7jqqTN9T4JSvZjsGyAojcS8chmzIWG3q8XiuzYS8ohk7OYy4Suy9n8VTtBGLcz8K00Q9g==} cpu: [x64] os: [win32] @@ -6735,11 +6735,11 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rolldown@1.0.0-beta.8-commit.bc78fa1: - resolution: {integrity: sha512-40NXNKaiSfg3pfPnX/FFgTLSvVu//yFGmoVKK602Txjo3lneZ79lRguua9SyJYozbYAkDQ/BbJUNSX0k+xOnSg==} + rolldown@1.0.0-beta.8-commit.c76291c: + resolution: {integrity: sha512-zjspfhO4u5+v9fiS+Om9DnpCrmq7jdTusu5x+un2oxqpHY2Ds6IllZFmgvAx48X4H9EYmJJ0YJHD6ruW5SX5EQ==} hasBin: true peerDependencies: - '@oxc-project/runtime': 0.67.0 + '@oxc-project/runtime': 0.68.1 peerDependenciesMeta: '@oxc-project/runtime': optional: true @@ -8944,9 +8944,9 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.0 - '@oxc-project/runtime@0.67.0': {} + '@oxc-project/runtime@0.68.1': {} - '@oxc-project/types@0.67.0': {} + '@oxc-project/types@0.68.1': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -9020,42 +9020,42 @@ snapshots: '@publint/pack@0.1.1': {} - '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.bc78fa1': + '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.c76291c': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.bc78fa1': + '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.c76291c': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.bc78fa1': + '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.c76291c': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.bc78fa1': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.c76291c': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.bc78fa1': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.c76291c': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.bc78fa1': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.c76291c': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.bc78fa1': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.c76291c': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.bc78fa1': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.c76291c': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.bc78fa1': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.c76291c': dependencies: '@napi-rs/wasm-runtime': 0.2.9 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.bc78fa1': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.c76291c': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.bc78fa1': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.c76291c': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.bc78fa1': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.c76291c': optional: true '@rollup/plugin-alias@5.1.1(rollup@4.34.9)': @@ -12889,24 +12889,24 @@ snapshots: rfdc@1.4.1: {} - rolldown@1.0.0-beta.8-commit.bc78fa1(@oxc-project/runtime@0.67.0): + rolldown@1.0.0-beta.8-commit.c76291c(@oxc-project/runtime@0.68.1): dependencies: - '@oxc-project/types': 0.67.0 + '@oxc-project/types': 0.68.1 ansis: 3.17.0 optionalDependencies: - '@oxc-project/runtime': 0.67.0 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.8-commit.bc78fa1 - '@rolldown/binding-darwin-x64': 1.0.0-beta.8-commit.bc78fa1 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.8-commit.bc78fa1 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.8-commit.bc78fa1 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.8-commit.bc78fa1 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.8-commit.bc78fa1 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.8-commit.bc78fa1 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.8-commit.bc78fa1 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.8-commit.bc78fa1 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.8-commit.bc78fa1 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.8-commit.bc78fa1 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.8-commit.bc78fa1 + '@oxc-project/runtime': 0.68.1 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.8-commit.c76291c + '@rolldown/binding-darwin-x64': 1.0.0-beta.8-commit.c76291c + '@rolldown/binding-freebsd-x64': 1.0.0-beta.8-commit.c76291c + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.8-commit.c76291c + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.8-commit.c76291c + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.8-commit.c76291c + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.8-commit.c76291c + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.8-commit.c76291c + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.8-commit.c76291c + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.8-commit.c76291c + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.8-commit.c76291c + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.8-commit.c76291c rollup-plugin-dts@6.2.1(rollup@4.34.9)(typescript@5.7.3): dependencies: From 6e1d23ece97b71e7b8d13eec88eeddaa62840613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0?= Date: Wed, 7 May 2025 11:26:37 +0900 Subject: [PATCH 097/102] fix(config): make dynamic import work in config (#157) --- packages/vite/src/node/config.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index f80f9e06a14204..bbb9226679d070 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -2215,6 +2215,8 @@ async function bundleConfigFile( sourcemapPathTransform(relative) { return path.resolve(fileName, relative) }, + // we want to generate a single chunk like esbuild does with `splitting: false` + inlineDynamicImports: true, }) await bundle.close() From ccfccef5c6f92cc00ef295faafcaa14ab038dce2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0?= Date: Wed, 7 May 2025 12:02:29 +0900 Subject: [PATCH 098/102] fix: watch related fixes (#158) --- packages/vite/src/node/build.ts | 3 +-- playground/vitestSetup.ts | 5 +---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index f377d9b556a7fb..fd02f41221ec16 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -860,8 +860,7 @@ async function buildEnvironment( prepareOutDir(resolvedOutDirs, emptyOutDir, environment) } } else if (event.code === 'BUNDLE_END') { - // FIXME: https://github.com/rolldown/rolldown/issues/4380 - // event.result.close() + event.result.close() logger.info(colors.cyan(`built in ${event.duration}ms.`)) } else if (event.code === 'ERROR') { outputBuildError(event.error) diff --git a/playground/vitestSetup.ts b/playground/vitestSetup.ts index a8e40e104bff08..bee9ced78f9bf3 100644 --- a/playground/vitestSetup.ts +++ b/playground/vitestSetup.ts @@ -303,7 +303,6 @@ export async function notifyRebuildComplete( const callback = (event: RolldownWatcherEvent): void => { if (event.code === 'END') { resolveFn?.() - resolveFn = undefined // set to undefined instead of watcher.off for now } } watcher.on('event', callback) @@ -311,9 +310,7 @@ export async function notifyRebuildComplete( resolveFn = resolve }) - // TODO: not supported yet (https://github.com/rolldown/rolldown/issues/4382) - // return watcher.off('event', callback) - return watcher + return watcher.off('event', callback) } export function createInMemoryLogger(logs: string[]): Logger { From 9865a3ac6f7dc01923ccdb794d86169eb891b781 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Wed, 7 May 2025 13:16:01 +0900 Subject: [PATCH 099/102] release: v6.3.8 --- packages/create-vite/template-lit-ts/package.json | 2 +- packages/create-vite/template-lit/package.json | 2 +- packages/create-vite/template-preact-ts/package.json | 2 +- packages/create-vite/template-preact/package.json | 2 +- packages/create-vite/template-qwik-ts/package.json | 2 +- packages/create-vite/template-qwik/package.json | 2 +- packages/create-vite/template-react-ts/package.json | 2 +- packages/create-vite/template-react/package.json | 2 +- packages/create-vite/template-solid-ts/package.json | 2 +- packages/create-vite/template-solid/package.json | 2 +- packages/create-vite/template-svelte-ts/package.json | 2 +- packages/create-vite/template-svelte/package.json | 2 +- packages/create-vite/template-vanilla-ts/package.json | 2 +- packages/create-vite/template-vanilla/package.json | 2 +- packages/create-vite/template-vue-ts/package.json | 2 +- packages/create-vite/template-vue/package.json | 2 +- packages/vite/CHANGELOG.md | 11 +++++++++++ packages/vite/package.json | 2 +- 18 files changed, 28 insertions(+), 17 deletions(-) diff --git a/packages/create-vite/template-lit-ts/package.json b/packages/create-vite/template-lit-ts/package.json index 0d7213b07a10a7..a5b29169517d3e 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.8.3", - "vite": "npm:rolldown-vite@^6.3.7" + "vite": "npm:rolldown-vite@^6.3.8" } } diff --git a/packages/create-vite/template-lit/package.json b/packages/create-vite/template-lit/package.json index 8b012c4aa36c67..47ca6a3052c5cf 100644 --- a/packages/create-vite/template-lit/package.json +++ b/packages/create-vite/template-lit/package.json @@ -12,6 +12,6 @@ "lit": "^3.3.0" }, "devDependencies": { - "vite": "npm:rolldown-vite@^6.3.7" + "vite": "npm:rolldown-vite@^6.3.8" } } diff --git a/packages/create-vite/template-preact-ts/package.json b/packages/create-vite/template-preact-ts/package.json index 95bdb1be9702bf..5a29089b23875b 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.8.3", - "vite": "npm:rolldown-vite@^6.3.7" + "vite": "npm:rolldown-vite@^6.3.8" } } diff --git a/packages/create-vite/template-preact/package.json b/packages/create-vite/template-preact/package.json index 8f9d2fe22a82d4..5a8049e5306139 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": "npm:rolldown-vite@^6.3.7" + "vite": "npm:rolldown-vite@^6.3.8" } } diff --git a/packages/create-vite/template-qwik-ts/package.json b/packages/create-vite/template-qwik-ts/package.json index 1d72307138d875..1e4ebfe190fdd0 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.8.3", - "vite": "npm:rolldown-vite@^6.3.7" + "vite": "npm:rolldown-vite@^6.3.8" }, "dependencies": { "@builder.io/qwik": "^1.13.0" diff --git a/packages/create-vite/template-qwik/package.json b/packages/create-vite/template-qwik/package.json index 5b8cbc168ed36d..2aa3559ab5ac7d 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": "npm:rolldown-vite@^6.3.7" + "vite": "npm:rolldown-vite@^6.3.8" }, "dependencies": { "@builder.io/qwik": "^1.13.0" diff --git a/packages/create-vite/template-react-ts/package.json b/packages/create-vite/template-react-ts/package.json index 14e6b374903902..e16207a3a0849f 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.8.3", "typescript-eslint": "^8.30.1", - "vite": "npm:rolldown-vite@^6.3.7" + "vite": "npm:rolldown-vite@^6.3.8" } } diff --git a/packages/create-vite/template-react/package.json b/packages/create-vite/template-react/package.json index f142a405cd28c9..99cf506cad094c 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": "npm:rolldown-vite@^6.3.7" + "vite": "npm:rolldown-vite@^6.3.8" } } diff --git a/packages/create-vite/template-solid-ts/package.json b/packages/create-vite/template-solid-ts/package.json index 4ba8ef6cbddcc7..da179b38edd6a7 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.8.3", - "vite": "npm:rolldown-vite@^6.3.7", + "vite": "npm:rolldown-vite@^6.3.8", "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 44330cb702f11e..4b946df6d7ec79 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": "npm:rolldown-vite@^6.3.7", + "vite": "npm:rolldown-vite@^6.3.8", "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 0e685c90c46dca..1bacdb7f175881 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.28.1", "svelte-check": "^4.1.6", "typescript": "~5.8.3", - "vite": "npm:rolldown-vite@^6.3.7" + "vite": "npm:rolldown-vite@^6.3.8" } } diff --git a/packages/create-vite/template-svelte/package.json b/packages/create-vite/template-svelte/package.json index 5fc6b0ad4b2531..107011f2d26615 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.28.1", - "vite": "npm:rolldown-vite@^6.3.7" + "vite": "npm:rolldown-vite@^6.3.8" } } diff --git a/packages/create-vite/template-vanilla-ts/package.json b/packages/create-vite/template-vanilla-ts/package.json index b0c620fec7754b..b99602c4076281 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.8.3", - "vite": "npm:rolldown-vite@^6.3.7" + "vite": "npm:rolldown-vite@^6.3.8" } } diff --git a/packages/create-vite/template-vanilla/package.json b/packages/create-vite/template-vanilla/package.json index eaee94f53c8cea..b716d1b49fef1c 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": "npm:rolldown-vite@^6.3.7" + "vite": "npm:rolldown-vite@^6.3.8" } } diff --git a/packages/create-vite/template-vue-ts/package.json b/packages/create-vite/template-vue-ts/package.json index 4a9ea2e107cb35..7eb2ef977d48e5 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.3", "@vue/tsconfig": "^0.7.0", "typescript": "~5.8.3", - "vite": "npm:rolldown-vite@^6.3.7", + "vite": "npm:rolldown-vite@^6.3.8", "vue-tsc": "^2.2.8" } } diff --git a/packages/create-vite/template-vue/package.json b/packages/create-vite/template-vue/package.json index 33c2fe2976f91d..41d2225cc27a4f 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.3", - "vite": "npm:rolldown-vite@^6.3.7" + "vite": "npm:rolldown-vite@^6.3.8" } } diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index b76345c9bacc29..da09a2aef42352 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,14 @@ +## 6.3.8 (2025-05-07) + +* fix: watch related fixes (#158) ([ccfccef](https://github.com/vitejs/rolldown-vite/commit/ccfccef)), closes [#158](https://github.com/vitejs/rolldown-vite/issues/158) +* fix(config): make dynamic import work in config (#157) ([6e1d23e](https://github.com/vitejs/rolldown-vite/commit/6e1d23e)), closes [#157](https://github.com/vitejs/rolldown-vite/issues/157) +* fix(ssr): handle uninitialized export access as undefined (#19959) ([fd38d07](https://github.com/vitejs/rolldown-vite/commit/fd38d07)), closes [#19959](https://github.com/vitejs/rolldown-vite/issues/19959) +* feat: update rolldown ([2fed74f](https://github.com/vitejs/rolldown-vite/commit/2fed74f)) +* feat(types): add `Rollup.RollupWatcherEvent` type (#152) ([1b31e92](https://github.com/vitejs/rolldown-vite/commit/1b31e92)), closes [#152](https://github.com/vitejs/rolldown-vite/issues/152) +* release: v6.3.5 ([84e4647](https://github.com/vitejs/rolldown-vite/commit/84e4647)) + + + ## 6.3.7 (2025-05-02) * feat: update rolldown ([9b83bd1](https://github.com/vitejs/rolldown-vite/commit/9b83bd1)) diff --git a/packages/vite/package.json b/packages/vite/package.json index 0de09a039bf217..58cc1e2e6ea2d2 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "rolldown-vite", - "version": "6.3.7", + "version": "6.3.8", "type": "module", "license": "MIT", "author": "Evan You", From 9615b136a8c554b1f0d3308e5e0e352f7d69be62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0?= Date: Wed, 7 May 2025 14:43:28 +0900 Subject: [PATCH 100/102] fix(optimizer): suppress warnings for optimizer (#160) --- packages/vite/src/node/optimizer/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite/src/node/optimizer/index.ts b/packages/vite/src/node/optimizer/index.ts index b680cb97067269..522da8b10f488d 100644 --- a/packages/vite/src/node/optimizer/index.ts +++ b/packages/vite/src/node/optimizer/index.ts @@ -788,7 +788,7 @@ async function prepareRolldownOptimizerRun( ...rollupOptions, // TODO: pass target input: flatIdDeps, - logLevel: 'warn', + logLevel: 'silent', plugins, define, platform, From de8164a4580c65d7db09b16ddef6957789ebb633 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0?= Date: Thu, 8 May 2025 20:34:46 +0900 Subject: [PATCH 101/102] test: reduce diff with normal Vite (#161) --- playground/assets/vite.config-encoded-base.js | 2 +- playground/assets/vite.config-relative-base.js | 2 +- playground/assets/vite.config-runtime-base.js | 2 +- playground/assets/vite.config-url-base.js | 2 +- playground/optimize-deps/__tests__/optimize-deps.spec.ts | 6 ++++-- vitest.config.e2e.ts | 1 - 6 files changed, 8 insertions(+), 7 deletions(-) diff --git a/playground/assets/vite.config-encoded-base.js b/playground/assets/vite.config-encoded-base.js index 2a567006950e15..70e86eeb90eb37 100644 --- a/playground/assets/vite.config-encoded-base.js +++ b/playground/assets/vite.config-encoded-base.js @@ -15,7 +15,7 @@ export default defineConfig({ build: { ...baseConfig.build, outDir: 'dist/encoded-base', - // watch: null, + watch: null, minify: false, assetsInlineLimit: 0, rollupOptions: { diff --git a/playground/assets/vite.config-relative-base.js b/playground/assets/vite.config-relative-base.js index 7fb492f84af24d..dabaedb26136b3 100644 --- a/playground/assets/vite.config-relative-base.js +++ b/playground/assets/vite.config-relative-base.js @@ -7,7 +7,7 @@ export default defineConfig(({ isPreview }) => ({ build: { ...baseConfig.build, outDir: 'dist/relative-base', - // watch: null, + watch: null, minify: false, assetsInlineLimit: 0, rollupOptions: { diff --git a/playground/assets/vite.config-runtime-base.js b/playground/assets/vite.config-runtime-base.js index 54a451ac88ae09..5113ccebc68c3d 100644 --- a/playground/assets/vite.config-runtime-base.js +++ b/playground/assets/vite.config-runtime-base.js @@ -12,7 +12,7 @@ export default defineConfig({ build: { ...baseConfig.build, outDir: 'dist/runtime-base', - // watch: null, + watch: null, minify: false, assetsInlineLimit: 0, rollupOptions: { diff --git a/playground/assets/vite.config-url-base.js b/playground/assets/vite.config-url-base.js index 853d8eca6c95af..14d24feae4298d 100644 --- a/playground/assets/vite.config-url-base.js +++ b/playground/assets/vite.config-url-base.js @@ -14,7 +14,7 @@ export default defineConfig({ build: { ...baseConfig.build, outDir: 'dist/url-base', - // watch: null, + watch: null, minify: false, assetsInlineLimit: 0, rollupOptions: { diff --git a/playground/optimize-deps/__tests__/optimize-deps.spec.ts b/playground/optimize-deps/__tests__/optimize-deps.spec.ts index f8f5a1623ace86..14e795f3280890 100644 --- a/playground/optimize-deps/__tests__/optimize-deps.spec.ts +++ b/playground/optimize-deps/__tests__/optimize-deps.spec.ts @@ -30,7 +30,8 @@ test('default import from webpacked cjs (clipboard)', async () => { await expectWithRetry(() => page.textContent('.cjs-clipboard')).toBe('ok') }) -test('dynamic imports from cjs dep (react)', async () => { +// NOTE: rolldown behaves differently from @rollup/plugin-commonjs https://github.com/rolldown/rolldown/issues/2031 +test.skip('dynamic imports from cjs dep (react)', async () => { await expectWithRetry(() => page.textContent('.cjs-dynamic button')).toBe( 'count is 0', ) @@ -52,7 +53,8 @@ test('dynamic default import from webpacked cjs (clipboard)', async () => { ) }) -test('dynamic default import from cjs (cjs-dynamic-dep-cjs-compiled-from-esm)', async () => { +// NOTE: rolldown behaves differently from @rollup/plugin-commonjs https://github.com/rolldown/rolldown/issues/2031 +test.skip('dynamic default import from cjs (cjs-dynamic-dep-cjs-compiled-from-esm)', async () => { await expectWithRetry(() => page.textContent('.cjs-dynamic-dep-cjs-compiled-from-esm'), ).toBe('ok') diff --git a/vitest.config.e2e.ts b/vitest.config.e2e.ts index 7671a1cdd4c2c2..f9e21a1c2fee67 100644 --- a/vitest.config.e2e.ts +++ b/vitest.config.e2e.ts @@ -18,7 +18,6 @@ export default defineConfig({ ...(isBuild ? [ './playground/object-hooks/**/*.spec.[tj]s', // object hook sequential - './playground/optimize-deps/**/*.spec.[tj]s', // https://github.com/rolldown/rolldown/issues/2031 ] : []), ...defaultExclude, From 284487e2370586342153548e446dce4aeda464e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0?= Date: Fri, 9 May 2025 22:14:51 +0900 Subject: [PATCH 102/102] ci: run tests with native resolver (#163) --- .github/workflows/ci.yml | 72 +++++++++++++++++++ .../vite/src/node/__tests__/resolve.spec.ts | 28 ++++---- packages/vite/src/node/config.ts | 8 ++- 3 files changed, 94 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 669c624778d5d4..4bf90702adb3b7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -143,6 +143,78 @@ jobs: steps: - run: echo "Build & Test Failed" + test-native-plugins: + needs: changed + if: needs.changed.outputs.should_skip != 'true' + timeout-minutes: 20 + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + node_version: [22] + fail-fast: false + + name: "Build&Test: node-${{ matrix.node_version }}, ${{ matrix.os }} (native plugins)" + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install pnpm + uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 + + - name: Set node version to ${{ matrix.node_version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node_version }} + cache: "pnpm" + + - name: Install deps + run: pnpm install + + # Install playwright's binary under custom directory to cache + - name: (non-windows) Set Playwright path and Get playwright version + if: runner.os != 'Windows' + run: | + echo "PLAYWRIGHT_BROWSERS_PATH=$HOME/.cache/playwright-bin" >> $GITHUB_ENV + PLAYWRIGHT_VERSION="$(pnpm ls --depth 0 --json -w playwright-chromium | jq --raw-output '.[0].devDependencies["playwright-chromium"].version')" + echo "PLAYWRIGHT_VERSION=$PLAYWRIGHT_VERSION" >> $GITHUB_ENV + - name: (windows) Set Playwright path and Get playwright version + if: runner.os == 'Windows' + run: | + echo "PLAYWRIGHT_BROWSERS_PATH=$HOME\.cache\playwright-bin" >> $env:GITHUB_ENV + $env:PLAYWRIGHT_VERSION="$(pnpm ls --depth 0 --json -w playwright-chromium | jq --raw-output '.[0].devDependencies["playwright-chromium"].version')" + echo "PLAYWRIGHT_VERSION=$env:PLAYWRIGHT_VERSION" >> $env:GITHUB_ENV + + - name: Cache Playwright's binary + uses: actions/cache@v4 + with: + key: ${{ runner.os }}-playwright-bin-v1-${{ env.PLAYWRIGHT_VERSION }} + path: ${{ env.PLAYWRIGHT_BROWSERS_PATH }} + restore-keys: | + ${{ runner.os }}-playwright-bin-v1- + + - name: Install Playwright + # does not need to explicitly set chromium after https://github.com/microsoft/playwright/issues/14862 is solved + run: pnpm playwright install chromium + + - name: Build + run: pnpm run build + + - name: Test unit + run: pnpm run test-unit + env: + _VITE_TEST_NATIVE_PLUGIN: 1 + + - name: Test serve + run: pnpm run test-serve + env: + _VITE_TEST_NATIVE_PLUGIN: 1 + + - name: Test build + run: pnpm run test-build + env: + _VITE_TEST_NATIVE_PLUGIN: 1 + lint: timeout-minutes: 10 runs-on: ubuntu-latest diff --git a/packages/vite/src/node/__tests__/resolve.spec.ts b/packages/vite/src/node/__tests__/resolve.spec.ts index f089a1518a1f6e..e13ffceef6e6fa 100644 --- a/packages/vite/src/node/__tests__/resolve.spec.ts +++ b/packages/vite/src/node/__tests__/resolve.spec.ts @@ -214,18 +214,22 @@ describe('file url', () => { expect(resolved).toBeNull() }) - test('non declared node builtin', async () => { - await expect( - run({ - builtins: [ - /* empty */ - ], - idToResolve: 'node:fs', - }), - ).rejects.toThrowError( - /warning: Automatically externalized node built-in module "node:fs"/, - ) - }) + // skip for native plugin because logs are not output (https://github.com/rolldown/rolldown/issues/4290) + test.skipIf(!!process.env._VITE_TEST_NATIVE_PLUGIN)( + 'non declared node builtin', + async () => { + await expect( + run({ + builtins: [ + /* empty */ + ], + idToResolve: 'node:fs', + }), + ).rejects.toThrowError( + /warning: Automatically externalized node built-in module "node:fs"/, + ) + }, + ) test('default to node-like builtins', async () => { const resolved = await run({ diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index bbb9226679d070..931aaf4ff400af 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -714,7 +714,9 @@ export const configDefaults = Object.freeze({ renderBuiltUrl: undefined, hmrPartialAccept: false, skipSsrTransform: false, - enableNativePlugin: false, + enableNativePlugin: process.env._VITE_TEST_NATIVE_PLUGIN + ? 'resolver' + : false, }, future: { removePluginHookHandleHotUpdate: undefined, @@ -1713,7 +1715,9 @@ export async function resolveConfig( experimental: { importGlobRestoreExtension: false, hmrPartialAccept: false, - enableNativePlugin: false, + enableNativePlugin: process.env._VITE_TEST_NATIVE_PLUGIN + ? 'resolver' + : false, ...config.experimental, }, future: config.future,