Добавление модуля отображения в Jest? - PullRequest
0 голосов
/ 22 октября 2018

tsconfig.json имеет настройку paths следующим образом:

"paths": {
  "@fs/*": ["src/*"], 
  "@test/*": ["test/*"]
  }

При этом все операции импорта @fs/blah/blah разрешаются в VSCode.Чтобы заставить Jest работать с тем же объявлением импорта, я добавил moduleMapper к jest.config.ts, и это полная конфигурация:

    module.exports = {
    roots: ["./src"],
    transform: {
        "^.+\\.tsx?$": "ts-jest"
    },
    testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$",
    moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
    moduleNameMapper: {
        "@fs/*": ["src/*"]
    }
    };

С такими утверждениями, как import { isBoolean } from "@fs/is";, не разрешаются.

При изменении с использованием относительного импорта Jest разрешает его (import { isBoolean } from "./is";)

Мысли?

1 Ответ

0 голосов
/ 22 октября 2018

Согласно документу jest ключи moduleNameMapper являются регулярными выражениями.(без шаблонов глобуса)
И <rootDir> могут использоваться для ссылки на корень проекта.( документы )

Итак, мы можем настроить, как показано ниже:

moduleNameMapper: {
    "^@fs/(.*)$": "<rootDir>/src/$1"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...