Skip to content

Absolute imports with CRA #7818

Closed
Closed

Description

@adrianwithah

I created a Typescript-enabled React app bootstrapped from create-react-app. After enabling baseUrl: "." for easier absolute imports, my Jest tests broke.

How to repro:

  1. With a src folder in your root directory, add baseUrl: "." to your tsconfig.json under compilerOptions.
  2. Create a Jest test file with the following code:
import { isValidAddress } from 'orbit-db';

it('doesnt fail to resolve import', () => {
    isValidAddress("asdf");
});
  1. Run npm install orbit-db ipfs and then npm run test. You should end up with something similar to the following error:
 FAIL  src/components/Random.test.tsx
  ● Test suite failed to run

    Configuration error:

    Could not locate module multicodec/src/base-table mapped as:
    path/to/my/repo/src/base-table.

    Please check your configuration for these entries:
    {
      "moduleNameMapper": {
        "/src\/(.*)$/": "path/to/my/repo/src/$1"
      },
      "resolver": null
    }

      at createNoMappedModuleFoundError (node_modules/jest-resolve/build/index.js:501:17)
      at Object.<anonymous> (node_modules/cids/src/index.js:6:16)

According to my understand of CRA, the moduleNameMapper regex is generated when the CRA script sees the baseUrl field in tsconfig.json. However, this regex also seems to wrongly capture some of the imports in files from node_modules.

Activity

  1. robertvansteen commented on Oct 14, 2019

    @robertvansteen
    Contributor

    This should be fixed in the next version.

  2. locked and limited conversation to collaborators on Oct 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions