Jest: не удалось найти предустановку "@ babel / env" относительно каталога - PullRequest
0 голосов
/ 05 января 2019

Я пытаюсь настроить Jest в проекте ES6. Не далеко, так как, как только я запускаю jest, я начинаю сталкиваться с проблемами.

.babelrc

{
  "presets": [
    "@babel/env"
  ]
}

Выше выдается ошибка Couldn't find preset "@babel/env" relative to directory при запуске Jest. Что хорошо, я думаю, так как это должно быть @babel/preset-env в любом случае? (хотя оба работают с остальной частью моей установки ...)

Но! Когда я изменяю пресет на @babel/preset-env, полученная ошибка очень сбивает с толку:

Требуется Babel "^ 7.0.0-0", но был загружен с "6.26.3". Если вы уверены, что у вас есть совместимая версия @ babel / core, вероятно, что-то в процессе сборки загружает неправильную версию. Изучите трассировку стека этой ошибки, чтобы найти первую запись, в которой не упоминается "@ babel / core" или "babel-core", чтобы увидеть, что вызывает Babel. (При обработке пресета: "/Users/.../node_modules/@babel/preset-env/lib/index.js")

Что очень странно, поскольку мои devDeps of Babel и Jest установлены на:

"devDependencies": {
  "@babel/core": "^7.2.0",
  "@babel/preset-env": "^7.2.0",
  "@babel/register": "^7.0.0",
  "babel-jest": "^23.6.0"
}

Насколько я могу судить, это сообщение об ошибке имеет абсолютно нулевой смысл. Моей следующей мыслью было проверить мою глобальную установку CLI Babel, которая была babel-cli@6.26.0. Ближе, но это не 6.26.3, как указано в сообщении об ошибке. Я также пытался заменить глобальный пакет на последний @babel/cli, но это не имело никакого значения.

Чего мне здесь не хватает?

1 Ответ

0 голосов
/ 05 января 2019

Ах, решил. По какой-то очень странной причине мне пришлось включить 'babel-core@^7.0.0-0' в мою локальную настройку, которую я обнаружил на странице babel-jest npmjs (скриншот ниже):

2]

Таким образом, запуск npm i -D 'babel-core@^7.0.0-0' решил мою проблему, оставив мои devDeps так:

"devDependencies": {
  "@babel/core": "^7.2.2",
  "@babel/preset-env": "^7.2.0",
  "@babel/register": "^7.0.0",
  "babel-core": "^7.0.0-bridge.0",
  "babel-jest": "^23.6.0",
}

Включая @babel/core и babel-core мне кажется безумием, но эй, это работает! Я думаю, что сообщение об ошибке 6.26.3 остается загадкой, поскольку я не могу найти ни одного пакета Babel в этой версии, ни локального, ни глобального ...

...