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: ['&lt;rootDir&gt;/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 模块命名冲突”?

node.js 中的 Haste 模块映射是啥?

Haste 模块映射中不存在模块`EmployeeFormReducer`

Haste 模块命名冲突:将本机应用程序与 AWS 服务反应(放大项目)

Haste模块映射中不存在模块`@babel / runtime / helpers / interopRequireDefault`