···22import type { UserConfig } from 'vitest/node'
33import { resolve } from 'pathe'
44import { expect, it } from 'vitest'
55+import { rolldownVersion } from 'vitest/node'
56import { runVitest } from '../../test-utils'
6778it.each([
···9192 expect(files[0].tasks[index + 1].name).toBe(`custom ${name}`)
9293 expect(files[0].tasks[index + 1].location).toEqual({
9394 line: 18,
9494- column: 18,
9595+ // TODO: rolldown is more correct, but regular vite's source map is
9696+ // a little bit wrong with the boundaries (maybe because of the SSR transform?)
9797+ column: rolldownVersion || config.browser?.enabled ? 18 : 17,
9598 })
9699 })
97100})
+3-2
test/config/test/rollup-error.test.ts
···11import { expect, test } from 'vitest'
22+import { rolldownVersion } from 'vitest/node'
23import { runVitest } from '../../test-utils'
3445test('rollup error node', async () => {
···78 environment: 'node',
89 reporters: ['junit'],
910 })
1010- expect(stdout).toContain(`Error: Missing "./no-such-export" specifier in "vite" package`)
1111+ expect(stdout).toContain(`Error: Missing "./no-such-export" specifier in "${rolldownVersion ? 'rolldown-vite' : 'vite'}" package`)
1112 expect(stdout).toContain(`Plugin: vite:import-analysis`)
1213 expect(stdout).toContain(`Error: Failed to load url @vitejs/no-such-package`)
1314})
···1819 environment: 'jsdom',
1920 reporters: ['junit'],
2021 })
2121- expect(stdout).toContain(`Error: Missing "./no-such-export" specifier in "vite" package`)
2222+ expect(stdout).toContain(`Error: Missing "./no-such-export" specifier in "${rolldownVersion ? 'rolldown-vite' : 'vite'}" package`)
2223 expect(stdout).toContain(`Plugin: vite:import-analysis`)
2324 expect(stdout).toContain(`Error: Failed to resolve import "@vitejs/no-such-package" from "fixtures/rollup-error/not-found-package.test.ts". Does the file exist?`)
2425})
···11-import type { SourceMap } from 'rollup'
21/* eslint-disable no-template-curly-in-string */
32import type { TransformResult } from 'vite'
43import { describe, expect, it } from 'vitest'
···3029 version: 3,
3130 mappings: 'AAAO,SAAS,IAAI,KAAqB;AACvC,SAAO,qDAAqD;AAC9D;iHAAA',
3231 names: [],
3333- sourceRoot: undefined,
3432 sources: [
3533 '/foo.ts',
3634 ],
···3836 'export function foo(src: string): string {\n return `//# sourceMappingURL=data:application/json;base64,${src}`\n}\n',
3937 ],
4038 file: '/src/foo.ts',
4141- } as unknown as SourceMap,
3939+ toUrl: () => '',
4040+ },
4241 deps: [
4342 ],
4443 dynamicDeps: [
+6-3
packages/vitest/src/public/node.ts
···11import type { ModuleDiagnostic as _FileDiagnostic } from '../node/reporters/reported-tasks'
22-import { createServer as _createServer } from 'vite'
22+import * as vite from 'vite'
33import { Vitest } from '../node/core'
44import { TestModule as _TestFile } from '../node/reporters/reported-tasks'
55···8181 ResolvedBrowserOptions,
8282} from '../node/types/browser'
8383/** @deprecated use `createViteServer` instead */
8484-export const createServer: typeof _createServer = _createServer
8585-export const createViteServer: typeof _createServer = _createServer
8484+export const createServer: typeof vite.createServer = vite.createServer
8585+export const createViteServer: typeof vite.createServer = vite.createServer
8686export type {
8787 ApiConfig,
8888 BuiltinEnvironment,
···174174 rollupVersion,
175175 version as viteVersion,
176176} from 'vite'
177177+178178+// rolldownVersion is exported only by rolldown-vite
179179+export const rolldownVersion: string | undefined = (vite as any).rolldownVersion
177180178181export type * as Vite from 'vite'
+1-1
packages/vitest/src/node/plugins/normalizeURL.ts
···2626 const assetImportMetaUrlRE
2727 // vite injects new URL(path, import.meta.url) in the code
2828 // rolldown-vite injects new URL(path, '' + import.meta.url) in the code
2929- = /\bnew\s+URL\s*\(\s*(?:'[^']+'|"[^"]+"|`[^`]+`)\s*,\s*(?:'' \+ )?import\.meta\.url\s*(?:,\s*)?\)/g
2929+ = /\bnew\s+URL\s*\(\s*(?:'[^']+'|"[^"]+"|`[^`]+`)\s*,\s*(?:'' \+ )?import\.meta\.url\s*(?:,\s*)?\)/g
30303131 let updatedCode = code
3232 let match: RegExpExecArray | null