Я пытаюсь установить Jest
и React testing library
в свой выставочный проект (sdk 47). При установке возникает конфликт зависимостей. я новичок в тестировании, не могли бы вы помочь мне, как установить
Найдено: [email protected] npm ERR! node_modules/реакция npm ОШИБКА!
react@"18.1.0" из корневого проекта npm ERR! одноранговая реакция@">=16.0.0" из @testing-library/[email protected] npm ERR!
node_modules/@testing-library/react-native npm ОШИБКА!
@testing-library/react-native@"" из корневого проекта npm ERR! 1 больше (реагировать-родной) npm ERR! нпм ОШИБКА! Не удалось разрешить зависимость: нпм ОШИБКА! партнер react@"^18.2.0" from [email protected] npm ОШИБКА! node_modules/react-test-renderer npm ОШИБКА!
react-test-renderer@"^18.1.0" из корневого проекта npm ERR! вглядеться реакция-тест-рендерер@">=16.0.0" из @testing-library/[email protected] нпм ОШИБКА!
node_modules/@testing-library/react-native npm ОШИБКА!
@testing-library/react-native@"" из корневого проекта npm ERR! нпм ОШИБКА! Исправьте конфликт зависимостей восходящего потока или повторите попытку npm ERR! этот команда с --force или --legacy-peer-deps npm ERR! принять неправильное (и потенциально сломанное) разрешение зависимостей. нпм ОШИБКА! нпм ОШИБКА! См. C:\Users\rikvitha\AppData\Local\npm-cache\eresolve-report.txt. для полного отчета.нпм ОШИБКА! Полный журнал этого запуска можно найти в:
нпм ОШИБКА!
C:\Users\rikvitha\AppData\Local\npm-cache_logs\2023-01-22T05_28_56_533Z-debug-0.log
Вы пытаетесь установить библиотеку тестирования React (RTL) или библиотеку тестирования React-Native (RNTL)? Ваш вопрос говорит об одном, но ваша ошибка регистрирует другое, это две разные библиотеки. Я собираюсь предположить, что это RNTL, потому что вы также используете expo.
В журнале ошибок написано, что у вас есть несколько зависимостей, которые конфликтуют друг с другом, т.е. у вас конфликт зависимостей. Я бы порекомендовал удалить зависимости и добавить их снова (если у вас есть коммит, в котором все работает, вы можете сделать git reset head --hard
, чтобы отбросить ваши изменения). Я думаю, что ваша проблема связана с react-test-renderer, но конфликты зависимостей сложны.
Вот версии, которые я использую:
"@testing-library/jest-native": "^5.4.1",
"@testing-library/react-native": "^11.5.0",
"@tsconfig/react-native": "^2.0.2",
"@types/jest": "^26.0.24",
"@types/react": "^18.0.21",
"@types/react-native": "^0.70.6",
"@types/react-test-renderer": "^18.0.0",
"babel-jest": "^26.6.3",
"jest": "^26.6.3",
"metro-react-native-babel-preset": "0.72.3",
"react-test-renderer": "18.1.0",
"ts-jest": "^29.0.3",
"typescript": "^4.9.4"
Я использую react-native (вместо expo) и typescript (вместо js), поэтому есть еще несколько плагинов, которые вам, вероятно, не нужны, если вы также не используете TS, но эти версии не должны конфликтовать друг с другом.
Вы можете установить определенные версии, используя символ @, например npm i [email protected]
или [email protected]
.
Экспо использует реакцию 18.1.0. Поэтому, когда устанавливается тестовый рендерер или Jest Native, у меня возникает конфликт зависимостей, потому что они требуют реакции 18.2.0. Есть ли способ установить. Например, установка старых пакетов будет работать?