我对桶文件、webpack 和 jest 有几个问题。我从来没有真正想过它们是如何工作的,现在我正在努力(开玩笑地)在一个还没有测试的更大的应用程序上编写测试。
我在大文件夹中有桶文件(例如components
),它们看起来像这样:
/组件/index.js
export { default as ComponentA } from './ComponentA';
export { default as ComponentB } from './ComponentB';
export { default as ComponentC } from './ComponentC';
通过这样的设置,我可以轻松导入这些组件,如下所示:
import { ComponentA, Component C } from '/components';
而不是写作
import Component A from '/components/ComponentA';
import Component C from '/components/ComponentC';
我的主要问题:在我的 webpack 捆绑文件中,是否会仅仅因为我将 ComponentB 文件包含在components/index.js
(但我并没有真正使用它)?
在我开始用笑话编写测试后,我想到了这一点,它开始向我抛出有关我尚未编写测试的文件的错误。我试图搜索原因,我能找到的唯一原因是我从更大的文件中的桶文件导入(例如我导入ComponentA
来自构建页面时的桶文件 - 我现在正在尝试测试)。
应该支持桶导入,至少如果您使用 ts-jest 转换。
参考:https://github.com/kulshekhar/ts-jest/issues/1149 https://github.com/kulshekhar/ts-jest/issues/1149
但我鼓励桶类型定义 src/types/index.d.ts 出现类似问题,通常在代码库中引用为 @/types
我最终配置了额外的 moduleNameMapper 定义
moduleNameMapper: {
// FIXES Could not locate module @/types mapped as: .../src/types.
'^@/types$': '<rootDir>/src/types/index.d',
},
希望这会对某人有所帮助:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)