Требуется зависимость от бабел-шута - PullRequest
2 голосов
/ 17 марта 2019

Я новичок в теме React. Я начал это недавно, и у меня возникла проблема, когда я хочу запустить приложение React. 'запуск пряжи' показывает эту ошибку:

The react-scripts package provided by Create React App requires a dependency: "babel-jest": "23.6.0" 

Как мне преодолеть эту ошибку, пожалуйста.

Я пытался найти решение в Интернете, но мне не повезло. В чем проблема, пожалуйста?

1 Ответ

3 голосов
/ 17 марта 2019

Похоже, что могло случиться после того, как вы создали новое приложение с использованием 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, который уже включен в комплект).


Обновление

Исходя из вашего комментария, я считаю, что произошло следующее:

  1. Вы использовали npm init, который инициализировал новый проект nodejs с собственным файлом package.json.

  2. Затем в этой папке вы использовали create-react-app для создания подпапки test - это инициализированный другой проект с собственным файлом package.json.

  3. По какой-то причине проект в родительской папке (которую вы инициализировали с помощью 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 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...