#11297·vitest

原生运行程序手动模拟通过 export * 重新导出的导出文件

作者: harshit-d3v创建于 2026年9月16日更新于 2026年9月16日

描述错误

用 " 实验.viteModuleRunner:假 " ,一个手动模拟模块,用 " export QQ " 再出口将失去再出口名称。

//基数.ts 从Base () { 返回' base' } 导出函数

// star.ts (韩语). 从 “./ base.ts” 导出 * 导出函数 own () { 返回 “ own ”)}

// star. test.ts (英语). 从“./star.ts”导入{从Base, 自有} vi.mock(进口('./star.ts'), () {{({) 自己:() ‘被蒙蔽', 从Base: () QQ'mocked-base', (e))

测试('x', () {{{} expect( own ()) to be( “ mocked- own' ) // 确定 期望( 来自Base ()) toBe('mocked- base' ) // TypeError: from 基础不是一个函数 ) (中文(简体) ).


标准 :

[模块嘲笑] 解析从./star. ts导入的"./base.ts"失败: TypeError [ERR INVALID URL SCHEM]: URL必须是方案文件


因为...

`packages/mocker/src/node/parsers.ts'中的`parseModule':在收集`export'目标出口时,`resolveModuleFormat(resolvedModulePath,代码)'通过一个文件系统路径,但`resolveModuleFormat(url,代码)'将其交给`findPackageJSON',这需要`文件:'URL和投掷。 后再出口被撤销.

同样的功能也警告“不能处理”......,因为每个非JSON文件的文件扩展名未知,因为“else”分支运行的扩展名不是`.json',包括`.ts'和`.js'。

* 复制

上面的三个文件,`Experimental.viteModuleRunner:假'在配置中,`npxvitest run'。

QQ 系统信息

vitest 5.0.1 (中文(简体) ). 节点 22.1.8. 赢32 x64


使用过的软件包管理器

无

校验

- [x] 遵循我们的行为守则
- [x] 阅读贡献准则
- [x] 读取文件
- [x] 请检查date=中的日期值 (帮助)
- [x] 请检查date=中的日期值 (帮助)
- [x] 提供的复制是bug 的最小可复制的例子

我有一个单行固定, 在一个分支上的固定测试。 我会打开公关,一旦#11295解决, 因为外部贡献者得到一个公开公关一次。 Claude帮助我找到并验证了这一点.

内容来源: vitest-dev/vitest