Проблема с зависимостью babel-jest при запуске npm start в приложении React

Все, что я делаю, это запускаю приложение create-react-app и перезахожу в приложение, а затем пытаюсь запустить npm/yarn start. Я получаю следующую ошибку/вывод/журнал. Я прошел через все предложенные шаги. Единственное, что работает, это SKIP_PREFLIGHT_CHECK=true в моем .env в качестве последнего средства как для Yarn, так и для npm. Недавно я обновился до Мохаве, и мне пришлось переустановить Xcode, если у людей был подобный опыт.

Last login: Tue Oct 30 16:30:24 on ttys002
TheLAB11:~ jasonspiller$ cd repos/react-express-graphql-app/
TheLAB11:react-express-graphql-app jasonspiller$ npm start

> [email protected] start /Users/jasonspiller/repos/react-express-graphql-app
> react-scripts start


There might be a problem with the project dependency tree.
It is likely not a bug in Create React App, but something you need to fix locally.

The react-scripts package provided by Create React App requires a dependency:

  "babel-jest": "23.6.0"

Don't try to install it manually: your package manager does it automatically.
However, a different version of babel-jest was detected higher up in the tree:

  /Users/jasonspiller/node_modules/babel-jest (version: 23.4.2) 

Manually installing incompatible versions is known to cause hard-to-debug issues.

If prefer to ignore this check, add SKIP_PREFLIGHT_CHECK=true to an .env file in your project.
That will permanently disable this message but you might encounter other issues.

To fix the dependency tree, try following the steps below in the exact order:

  1. Delete package-lock.json (not package.json!) and/or yarn.lock in your project folder.
  2. Delete node_modules in your project folder.
  3. Remove "babel-jest" from dependencies and/or devDependencies in the package.json file in your project folder.
  4. Run npm install or yarn, depending on the package manager you use.

In most cases, this should be enough to fix the problem.
If this has not helped, there are a few other things you can try:

  5. If you used npm, install yarn (http://yarnpkg.com/) and repeat the above steps with it instead.
     This may help because npm has known issues with package hoisting which may get resolved in future versions.

  6. Check if /Users/jasonspiller/node_modules/babel-jest is outside your project directory.
     For example, you might have accidentally installed something in your home folder.

  7. Try running npm ls babel-jest in your project folder.
     This will tell you which other package (apart from the expected react-scripts) installed babel-jest.

If nothing else helps, add SKIP_PREFLIGHT_CHECK=true to an .env file in your project.
That would permanently disable this preflight check in case you want to proceed anyway.

P.S. We know this message is long but please read the steps above :-) We hope you find them helpful!

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: `react-scripts start`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/jasonspiller/.npm/_logs/2018-10-30T23_09_42_358Z-debug.log

person jasonspiller    schedule 31.10.2018    source источник


Ответы (19)


У меня была такая же проблема. По какой-то причине пакет оказался в каталоге node_modules в моем домашнем каталоге. Это также дало мне ту же ошибку для пакета jest.

Я не уверен в правильном способе исправить это, так как npm uninstall -g babel-jest и yarn global remove babel-jest ничего не делают.

Я исправил это, просто удалив папки, вызывающие проблему: bash rm -rf ~/node_modules/babel-jest ~/node_modules/jest

Было бы здорово узнать, как эти пакеты оказались там, и как правильно от них избавиться, но на данный момент достаточно просто удалить папки, чтобы запустить сервер разработки CRA, не пропуская предварительную проверку.

person Wade J    schedule 31.10.2018
comment
Большое спасибо. Как вы сказали, возможно, это не правильный способ, но у меня работает. Спасибо еще раз. - person jasonspiller; 02.11.2018
comment
Я столкнулся с этой точной ошибкой, как сообщается в OP, и последовал точному совету выше. Таким же образом мне пришлось удалить еще 1 модуль (rm -rf ~/node_modules/webpack)... затем мое приложение запустилось с yarn start. - person olisteadman; 06.02.2019
comment
Это решение не принимается, так как после каждой новой установки npm проблема сохраняется. Хотя хороший обходной путь, но не решение. - person ManMohan Vyas; 07.05.2019
comment
Я попробовал все вышеперечисленное, а также https://blog.travis-ci.com/2014-08-14-new-cache-ui/ помогло. Я добавил в файл travis travis cache --delete - person Steven; 03.05.2021

Эта проблема может возникнуть, если в родительском каталоге папки, в которой вы запускаете приложение, есть node_modules. Я решил проблему, удалив каталог node_modules.

person Ahmet Şimşek    schedule 20.11.2018
comment
это был мой случай - person VictorC; 13.01.2019
comment
Я также столкнулся с этим, но удалить родительский каталог было невозможно. Я смог обойти это, убедившись, что babel-jest и jest в обоих каталогах имеют одну и ту же версию. - person dimroc; 25.03.2019
comment
Это был и мой случай. Спасибо! - person Rafael Cavalcante; 02.05.2019
comment
родительский каталог не содержит каталог node_modules, все еще есть проблема - person ManMohan Vyas; 07.05.2019
comment
Это был и мой случай. - person Ahmed Ayoub; 18.05.2019
comment
Мой случай также. Корневая папка моих проектов случайно попала в каталог node_modules по какой-то другой ошибке. Я удалил папку node_modules в родительской папке, и теперь она работает. Спасибо - person Petter Kjelkenes; 06.06.2019
comment
Я прочитал это, думая, что это так глупо, никоим образом не это решение. Через две секунды я снова голосую. - person rob5408; 24.06.2019
comment
это был и мой случай. Папка node_module, которая находилась в домашнем каталоге, где я храню все свои проекты. - person Juan; 25.06.2019
comment
Этот. В моем Dockerfile я копировал свое приложение CRA по пути, где в родительском каталоге была папка node_modules. Подлый! - person Jordan Dodson; 15.07.2020
comment
Спасибо за эту полезную информацию, длинное решение, предоставленное npm, вводит в заблуждение! В моем package.json нет вавилонской шутки, столько времени потрачено впустую :( - person Calvin Zhou; 08.08.2020

Проблема, кажется, снова появилась в приложении create-реагировать 3.0.0.

The react-scripts package provided by Create React App requires a dependency:

  "babel-jest": "24.7.1"

Как указал abisuq в https://github.com/facebook/create-react-app/issues/6756#issuecomment-489562571 добавление разрешения версии в package.json временно устраняет проблему.

"resolutions": {
  "babel-jest": "24.7.1"
},

Обновление: исправлено в создать-реагировать-приложение 3.0.1. Если есть возможность выполнить обновление

npm install --save --save-exact [email protected]

or

yarn add --exact [email protected]
person Martin Fahl    schedule 09.05.2019
comment
На данный момент это кажется единственным рабочим решением. Я использовал его с yarn cache clean и удалением node_modules + yarn.lock - person roNn23; 15.05.2019
comment
Согласен, та же проблема в create-react-app 3.0. Я использовал обходной путь для разрешения. Если кто-то может решить проблему, поделитесь. - person Signcodeindie; 15.05.2019
comment
Приложение create-react-app 3.0.1 уже выпущено, похоже, там исправлено. Таким образом, решением может быть запуск yarn upgrade --latest create-react-app. - person ArneHugo; 16.05.2019

Я тоже столкнулся с подобной проблемой и смог решить проблему, выполнив следующие шаги.

  1. Создайте файл .env в корневом каталоге вашего проекта и добавьте следующий оператор

SKIP_PREFLIGHT_CHECK=верно

  1. Сохраните файл

  2. Удалить node_modules, yarn.lock, package.lock

  3. Затем переустановите node_modules с помощью

установка нпм

Это должно работать

person Rajesh    schedule 18.07.2019
comment
Недавно я изменил свой файл .env и не имел SKIP_PREFLIGHT_CHECK=true, добавление этого обратно помогло решить эту проблему. Мне не нужно было ничего удалять, просто перезапустите приложение после изменения .env. Еще одно исправление заключалось в удалении модулей-виновников из домашнего каталога, т. Е. Глобальных установок, однако проблемы возвращаются, когда вы со временем используете глобальные инструменты с помощью deps. - person NewScientists; 03.12.2019
comment
В моем случае не было необходимости удалять файлы node_modules или .lock. только что добавил файл .env с параметром SKIP_PREFLIGHT_CHECK=true, и все получилось - person sina farbod; 25.01.2021

У меня была эта проблема, и, наконец, я решил ее легко. Как вы, наверное, знаете, когда мы используем приложение create-react-app, Jest настраивается по умолчанию, и вам не нужно устанавливать Jest (когда мы используем Webpack, мы можем установить Jest). Итак, если вы используете Create-react-app и устанавливаете Jest по ошибке:

  1. Сначала удалите его (помните, что если вы используете: (npm install --save-dev jest), вы можете удалить jest непосредственно из Package.json или использовать: (npm uninstall --save-dev jest)
  2. Удалить package-lock.json (не package.json)
  3. Удалить node_modules
  4. npm install

Теперь вы не получаете сообщение об ошибке и можете легко использовать: (npm start) или (npm test)

Кроме того, стоит упомянуть, что я установил следующие инструменты для написания своего теста в компоненте React: (npm install --save-dev enzyme enzyme-adapter-react-16 jest-enzyme) и написал свой тест, используя шутку и фермент. Тогда я легко использую: (npm test)

Удачи!

person Nasser    schedule 14.05.2019

  1. запустить: npm ls babel-jest

Получил: [email protected] и [email protected] установлены

это означает, что нужно установить две версии babel-jest с другой версией.

  1. run:npm uninstall [email protected] исправить мою проблему
person leaez    schedule 05.05.2019

Хорошо, я наконец нашел решение, перепробовав все. Вот что наконец сработало:

  • Прежде всего, прочитайте сообщение об ошибке в cmd с самого начала. Они скажут вам, какой модуль вызывает проблему. Вероятно, на вашем компьютере установлена ​​более старая версия. Пример: babel-jest версии 2.4.4
  • Перейдите в папку Node.js c:/Users/(ваш пользователь)/node_modules, найдите этот модуль и просто удалите его.
  • Вернитесь к cmd и запустите npm start. Вы можете получить ту же ошибку. Но это будет для другого модуля. Просто удалите его таким же образом и повторяйте, пока он не запустится.
person Ali Alsabe    schedule 15.08.2019
comment
Ничто другое из того, что я пробовал, не сработало, но это помогло в Windows 10. Используйте это, если локальная переустановка пакетов не работает! - person omni; 06.06.2020

Я исправил проблему, удалив папку node_modules и файл package-lock.json из папки, расположенной выше, чем корень проекта. Я случайно установил node_modules в более высокую папку.

Я имел:

  • desktop/code/node_modules (удалите это, чтобы исправить)
  • desktop/code/package-lock.json (удалите это, чтобы исправить)
  • рабочий стол/код/проект/node_modules
  • рабочий стол/код/проект/package-lock.json
person Derek    schedule 13.06.2020

У меня тоже была эта проблема. Когда я пытался запустить клиент с помощью npm start, возникала ошибка, говорящая мне, что для этого требуется babel-jest: ^ 24.9.0.

Я заметил, что в моем клиенте babel-jest был версии ^ 24.9.0, но на моем сервере у меня была шутка: ^ 26.6.3.

Все, что мне нужно было сделать, это изменить jest: ^ 26.6.3 на jest: ^ 24.9.0 в исходном коде на стороне сервера, удалить мой package-lock.json, а также node_modules на сервере, снова установить npm и готово!

person Roberto Herman    schedule 28.01.2021

У меня была точно такая же проблема. Я попытался создать приложение реакции вне каталога, в котором была папка node_modules. После этого запустил приложение с запуском пряжи, и ошибка больше не появлялась.

person morenotos    schedule 04.04.2019

У меня была такая же проблема, и я исправил эту проблему. По какой-то причине, потому что node_modules на моем локальном. Я удалил вавилонскую шутку и шутку. После этого запускается npm. Я не уверен, что это решено неправильно, но это правильно для меня.

person Blue Tram    schedule 22.09.2019

Я решил эту проблему, удалив папку node_modules и файл package-lock.json, которые я случайно установил в корне моего пользователя.

Для меня в Mac путь был:

Macintosh HD -> Пользователи -> «Мое имя пользователя»

Я обнаружил, что это может быть проблемой, запустив npm ls babel-jest на терминале. Это показало мне, что на дереве была еще одна вавилонская шутка.

После удаления этих двух я установил npm в своем приложении, где я ранее удалил папку node_modules и package-lock.json.

Теперь едет нормально!

person Thiago Padovani    schedule 01.04.2020

Я исправил это, удалив папку node_module в каталоге проекта.

person praveen poonja    schedule 12.09.2020

попробуйте эту команду и посмотрите, какие пакеты создают конфликты версий.

npm ls babel-jest

замените конфликтующие пакеты обновленным одним из этого пакета.

person SaimumIslam27    schedule 01.12.2020

Я пробовал все написанные выше решения. Но ни один из них не работал. Я решил проблему, удалив папку C:\node_modules. Затем удалите проект node_modules и package-lock.json. Наконец, установите npm и запустите снова. И это сработало.

person realist    schedule 30.12.2020

Моя версия реагирующих сценариев — 4.0.3. Проблема внезапно возникла после установки частного удаленного пакета, который установил несколько пакетов babel в корневой каталог моего проекта node_modules. Я решил эту проблему, явно установив проблемные пакеты на корневой уровень проекта, чтобы они соответствовали версиям, указанным в предварительной проверке.

Следующие добавления исправили это в моем случае. Необходимые вам пакеты и версии могут отличаться, вы должны проверить предварительный отчет.

yarn add babel-jest@^26.6.0
yarn add [email protected]

Для меня это все еще обходной путь, но я предпочитаю этот способ вместо того, чтобы удалять что-то в node_modules вручную, как это предлагается в https://stackoverflow.com/a/53093421/4840661.

person Fabian Picone    schedule 05.03.2021

Получил эту ошибку в netlify ci, вот исправление, которое сработало для меня: этот метод работает для любой библиотеки, я получил ошибку для eslint вместо babel-jest.

  1. принудительно отобразить ошибку с помощью npm i -s @babel-jest/VERSION --force

    замените VERSION на любую версию, указанную в ошибке (в данном случае 23.6.0), правильное сообщение об ошибке будет показано локально

  2. #P4# <блочная цитата> #P5#
  3. наконец сделать npm ci

    это удалит package-lock и node_modules и установит новые версии на основе второго шага.

person Gokul Kurup    schedule 11.07.2021

эта работа для меня. очистить кеши в npm или пряже удалить node_modules и заблокировать файлы

  • создать файл .env
  • добавьте SKIP_PREFLIGHT_CHECK=true в файл .env в вашем проекте.
person Leul-Dev    schedule 04.08.2021

Это подход без удаления node_modules:

  • Я получил ошибку, как:

Пакет react-scripts, предоставляемый Create React App, требует зависимости: jest: 26.6.0 Не пытайтесь установить его вручную: ваш менеджер пакетов сделает это автоматически. Однако выше в дереве была обнаружена другая версия шутки:

  • Сначала проверьте версии, используя:

    npm ls babel-jest

    В моем случае вывод был таким:

[email protected]
└─┬ @jest/[email protected]
└─┬ [email protected]
└── [email protected]

  • После этого удалите babel-jest с помощью
    npm uninstall babel-jest
    (если вы видите одну версию babel-jest, в противном случае переходите к следующим версиям)
    npm uninstall [email protected]

  • Затем установите необходимые зависимости, используя
    npm i babel-jest@version jest@version
    (где версия указана в 1-м пункте)

Это работает для меня как шарм. Надеюсь, это решит и вас.

person Naman Kalra    schedule 01.06.2021