Skip to content

Commit 7fa60cd

Browse files
committed
fix: use .default fallback for @babel/traverse CJS import
Vite's SSR transform wraps CJS module.exports as .default, so the traverse function ends up at traverseModule.default. Use a simple fallback pattern that works in both vite and native Node contexts.
1 parent 6b228fe commit 7fa60cd

1 file changed

Lines changed: 6 additions & 4 deletions

File tree

test/unit/bundle-validation.test.mts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ import path from 'node:path'
88
import { fileURLToPath } from 'node:url'
99

1010
import { parse } from '@babel/parser'
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
11+
import traverseModule from '@babel/traverse'
1512
import { describe, expect, it } from 'vitest'
1613

14+
// @babel/traverse is CJS — vite wraps module.exports as .default
15+
const traverse = (
16+
traverseModule as unknown as { default: typeof traverseModule }
17+
).default
18+
1719
const __dirname = path.dirname(fileURLToPath(import.meta.url))
1820
const packagePath = path.resolve(__dirname, '../..')
1921
const distPath = path.join(packagePath, 'dist')

0 commit comments

Comments
 (0)