#configuration #config #create-react-app #ts-jest
Вопрос:
У меня есть приложение react, созданное с помощью «создать приложение react, перемонтированное». Я установил ts-jest и хочу иметь возможность настраивать Jest. Я прочитал документацию из ts-jest и выполнил npx ts-jest config:init
на корневом уровне своего проекта, чтобы создать файл начальной конфигурации. Чтобы проверить, что шутка действительно использует этот файл конфигурации, я написал следующую строку console.log(window);
в образце файла теста и изменил конфигурацию так, чтобы testEnvironment
было установлено значение «узел».
Я ожидаю, что тест завершится неудачно из window
-за того, что он не определен, но я возвращаю объект window. Я попытался переименовать файл в jest.config.ts
и получил тот же результат.
Я провел глобальный поиск по всем файлам, чтобы узнать, есть ли где-нибудь другой файл конфигурации, который переопределяет мои конфигурации, но он не был найден.
Что я делаю не так? Я знаю, что jest поставляется в комплекте с create-react-app (CRA). Я бы предположил, что create-react-app-rewired будет включать только некоторую оболочку выше CRA, так откуда она берет свои конфигурации?
Ответ №1:
Я пришел к пониманию, что пакет create-react-app-rewired не имеет никакого отношения к этой проблеме, поскольку это просто пакет-оболочка, который предоставляет configure-overrides.js
файл, позволяющий разработчикам изменять конфигурации веб-пакетов, управляемых create-react-app.
Файл jest.config.ts
jest.config.js
конфигурации or, который я создал, не имел никакого эффекта, потому что приложение create react (CRA) создаст и будет использовать свой собственный файл конфигурации jest под капотом.
Я обнаружил это случайно, исследуя другую проблему. Комментарий dstapleton92 на GitHub помог мне сделать этот вывод.
Приложение Create React поддерживает переопределение НЕКОТОРЫХ значений с помощью свойства «шутка» в package.json
файле. При проверке функции фабрики конфигурации jest в CRA testEnvironment
свойство жестко закодировано в «jsdom», и ключ не отображается как часть списка переопределяемых свойств.
Вот почему мои попытки не увенчались успехом.