jest-haste-map: Haste 模块命名冲突 (AWS, RN)
Posted
技术标签:
【中文标题】jest-haste-map: Haste 模块命名冲突 (AWS, RN)【英文标题】:jest-haste-map: Haste module naming collision (AWS, RN) 【发布时间】:2020-09-19 21:38:10 【问题描述】:我有一个使用 AWS Amplify 的 React-native 项目。
在根目录下,有一个放大文件夹。
在这个放大文件夹内,有一个backend
文件夹和一个#current-cloud-backend
文件夹。
这两者基本相同。
当我尝试使用 npm run start
开始我的项目时,我收到此错误:
The following files share their name; please adjust your hasteImpl:
* <rootDir>/amplify-backup/backend/function/cxLoyaltyMainAppVerifyAuthChallengeResponse/src/package.json
* <rootDir>/amplify/#current-cloud-backend/function/cxLoyaltyMainAppVerifyAuthChallengeResponse/src/package.json
它抱怨在这两个文件夹中,每个 lambda 函数都有自己的package.json
,其中它们的名称与对应的文件夹相同。
到目前为止我做了什么
我发现很多人提到将 modulePathIgnorePatterns: ['<rootDir>/build']
放在我的根 package.json 中 jest
下。也有人说把它放在我在任何地方都找不到的jest.config.js
里面。
我也尝试过创建一个根rn-cli.config.js
并添加了
module.exports =
resolver:
blacklistRE: blacklist( [
/node_modules\/.*\/node_modules\/react-native\/.*/,
] )
,
;
这也不起作用。
我真的没有想法了,有人有什么想法吗?谢谢
【问题讨论】:
【参考方案1】:我正在使用 Expo CLI 并且遇到了同样的问题。
对我有用的解决方案:
metro.config.js
在根目录。 (而不是rn-cli.config.js
)
const blacklist = require('metro-config/src/defaults/blacklist');
module.exports =
resolver:
blacklistRE: blacklist([/#current-cloud-backend\/.*/]),
,
transformer:
getTransformOptions: async () => (
transform:
experimentalImportSupport: false,
inlineRequires: false,
,
),
,
;
【讨论】:
我被这个问题困扰了好几个小时。谢谢。以上是关于jest-haste-map: Haste 模块命名冲突 (AWS, RN)的主要内容,如果未能解决你的问题,请参考以下文章
jest-haste-map: Haste 模块命名冲突 (AWS, RN)
如何修复 React Native 错误“jest-haste-map:Haste 模块命名冲突”?
Haste 模块映射中不存在模块`EmployeeFormReducer`
Haste 模块命名冲突:将本机应用程序与 AWS 服务反应(放大项目)
Haste模块映射中不存在模块`@babel / runtime / helpers / interopRequireDefault`