Похоже, что могло случиться после того, как вы создали новое приложение с использованием create-react-app
. Затем вы вручную добавили пакет babel-jest
с yarn add babel-jest
. По крайней мере, так я смог воспроизвести на моей машине ошибку, которую вы цитировали.
Вы не должны добавить пакет babel-jest
вручную, так как он уже включен в create-react-app
. Таким образом, вам нужно следовать инструкциям, которые были предоставлены вместе с вышеуказанной ошибкой, чтобы удалить пакет:
Сначала откройте package.json
и удалите строку зависимости, которая включает babel-jest
. Это может выглядеть примерно так:
// package.json
{
"name": "babel",
"version": "0.1.0",
"private": true,
"dependencies": {
"babel-jest": "23.6.0", <----------- REMOVE THIS LINE
"react": "^16.8.4",
"react-dom": "^16.8.4",
"react-scripts": "2.1.8"
},
Затем, поскольку вы используете yarn
, выполните следующие действия в корневой папке вашего проекта:
rm -rf node_modules
rm yarn.lock
yarn install
При этом удаляется добавленный вручную пакет babel-jest
, а затем дается новая установка всех пакетов, которые изначально поставлялись с create-react-app
(включая пакет babel-jest
, который уже включен в комплект).
Обновление
Исходя из вашего комментария, я считаю, что произошло следующее:
Вы использовали npm init
, который инициализировал новый проект nodejs с собственным файлом package.json
.
Затем в этой папке вы использовали create-react-app
для создания подпапки test
- это инициализированный другой проект с собственным файлом package.json
.
По какой-то причине проект в родительской папке (которую вы инициализировали с помощью npm init
) имеет ссылку на babel-jest
- и это противоречит приложению в дочерней папке, которое вы создали с помощью create-react-app
.
Помните, что npm
и yarn
являются менеджерами пакетов для проектов nodejs. У каждого из них есть команда init
, которую можно использовать для инициализации нового проекта, настройки файла package.json
. По большей части вам никогда не понадобится использовать и npm
, и yarn
в рамках одного проекта. Просто выберите тот, который вы хотите использовать, и придерживайтесь этого.
create-react-app
- это еще одна команда, которую можно использовать для инициализации нового проекта ReactJS с множеством встроенных начальных настроек. В него встроено babel-jest
, что может привести к некоторым конфликтам с родительской папкой. Файл package.json
или, возможно, глобально установленный пакет babel-jest
.
Как правило, следует использовать только 1 из следующего:
* npm init
инициализирует проект в текущей папке.
* yarn init
инициализирует проект в текущей папке.
* create-react-app .
инициализирует проект в текущей папке.
Для вашей текущей ситуации, так как вы работаете с новым проектом, я бы порекомендовал вам попробовать начать заново с инициализацией нового create-react-app
проекта. Перейдите в родительскую папку, вне той, где вы использовали команду npm init
. Создайте папку проекта, а затем в этой папке запустите create-react-app .