【问题标题】:jest-haste-map: Haste module naming collision (AWS, RN)jest-haste-map: Haste 模块命名冲突 (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\/.*/,
       ] )
   },
};

这也不起作用。

我真的没有想法了,有人有什么想法吗?谢谢

【问题讨论】:

    标签: amazon-web-services react-native jestjs expo aws-amplify


    【解决方案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,
          },
        }),
      },
    };
    

    【讨论】:

    • 我被这个问题困扰了好几个小时。谢谢。
    猜你喜欢
    • 2020-03-21
    • 2018-01-29
    • 1970-01-01
    • 1970-01-01
    • 2019-06-04
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多