Skip to content

Commit 6b228fe

Browse files
committed
fix: resolve @babel/traverse CJS interop for both native and vite contexts
The ssr.external approach only works for single-file runs, not the full suite with isolate: false. Use runtime typeof check to handle both native CJS resolution and vite's SSR transform.
1 parent ed9f5ee commit 6b228fe

2 files changed

Lines changed: 4 additions & 5 deletions

File tree

.config/vitest.config.mts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,6 @@ if (isCoverageEnabled) {
2424

2525
export default defineConfig({
2626
cacheDir: './.cache/vitest',
27-
ssr: {
28-
// Don't transpile CJS packages — let Node handle them natively
29-
external: ['@babel/traverse'],
30-
},
3127
test: {
3228
deps: {
3329
interopDefault: false,

test/unit/bundle-validation.test.mts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ import path from 'node:path'
88
import { fileURLToPath } from 'node:url'
99

1010
import { parse } from '@babel/parser'
11-
import traverse from '@babel/traverse'
11+
import _traverse from '@babel/traverse'
12+
13+
// @babel/traverse CJS exports { default: fn } — resolve for both native and vite contexts
14+
const traverse = typeof _traverse === 'function' ? _traverse : _traverse.default
1215
import { describe, expect, it } from 'vitest'
1316

1417
const __dirname = path.dirname(fileURLToPath(import.meta.url))

0 commit comments

Comments
 (0)