Vit*_*cho 10 javascript reactjs jestjs react-native
在我们的项目中,我们将react-native安装在两个工作区中(用于测试目的的根文件夹和库文件夹)。尝试测试应用程序(根文件夹)时,这将引发典型错误“ jest-haste-map:Haste模块命名冲突”。
项目结构:
.(rootProject)
+-- my-package
| +-- package.json (workspace(*))
+-- package.json(workspace(*))
* has react-native as dependency
Run Code Online (Sandbox Code Playgroud)
我可以为移动设备进行编译,并提供以下配置:
.(rootProject)
+-- my-package
| +-- package.json (workspace(*))
+-- package.json(workspace(*))
* has react-native as dependency
Run Code Online (Sandbox Code Playgroud)
出于笑话,我尝试了以下操作但未成功:
// metro.config.js
blacklistRE: blacklist([
new RegExp(
`^${path.resolve(__dirname, 'my-package/node_modules')}/.*$`,
),
]),
Run Code Online (Sandbox Code Playgroud)
jest.config是否有任何类似的配置?
编辑:
根项目(rootProject)的临时配置(无效的配置):
// jest.config.js
modulePathIgnorePatterns: [
'<rootDir>/my-package/node_modules/react-native',
]
Run Code Online (Sandbox Code Playgroud)
注意:
my-package是一个git子模块,可以单独测试或与rootProject集成(具有自己的笑话配置)
小智 3
如果你的每个包都有一个react-native依赖项,你最终会得到两个副本,这可能会导致笑话的问题。相反,保留作为根项目中的依赖项,但将其移至peerDependencies子模块中(以及第二个副本以便devDependencies能够单独测试它)。
您是否使用 yalc 在本地集成您的子模块?这对我来说是导致同样错误的原因,通过.yalc从根项目中删除文件夹来解决。
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |