Плагин Babel не распознается при попытке запустить Jest - PullRequest
0 голосов
/ 07 ноября 2018

Я только начинаю писать некоторые Jest-тесты, но сразу столкнулся с ошибкой «неизвестный плагин» в том, что в противном случае оказалось полностью работающей установкой Webpack / Babel, которая прекрасно работает на стадии npm run dev / npm run build .

В частности, я получаю ReferenceError: Unknown plugin "@babel/transform-async-to-generator" specified in "C:\\Users\\scott\\path\\to\\ThisProject\\.babelrc" at 0, attempted to resolve relative to "C:\\Users\\scott\\path\\to\\ThisProject"

(Ошибка читается так, как я в Git Bash на Windows.)

У меня определенно установлена ​​@babel/plugin-transform-async-to-generator.

Соответствующая часть моего package.json выглядит так:

"scripts": {
  "test": "jest",
  "build": "webpack --mode=production",
  "dev": "webpack --mode=development"
},
"jest": {
  "transform": {
    "^.+\\.jsx?$": "babel-jest"
  }
},
"dependencies": {
  "@babel/core": "^7.1.2",
  "@babel/plugin-transform-arrow-functions": "^7.0.0",
  "@babel/plugin-transform-async-to-generator": "^7.1.0",
  "@babel/plugin-transform-modules-commonjs": "^7.1.0",
  "@babel/plugin-transform-runtime": "^7.1.0",
  "@babel/polyfill": "^7.0.0",
  "@babel/preset-env": "^7.1.0",
  "babel-loader": "^8.0.4",
  "clean-webpack-plugin": "^0.1.19",
  "copy-webpack-plugin": "^4.5.2",
  "webpack": "^4.20.2",
  "webpack-cli": "^3.1.2"
},
"devDependencies": {
  "ajv": "^6.5.4",
  "babel-jest": "^23.6.0",
  "eslint": "^5.8.0",
  "jest": "^23.6.0",
  "jsdom": "^13.0.0",
}

Мой .babelrc очень прост:

{
    "presets": [
        [
            "@babel/preset-env",
            {
                "targets": {
                    "ie": "11"
                },
                "useBuiltIns": "entry"
            }
        ]
    ],
    "plugins": [
        "@babel/transform-async-to-generator",
        "@babel/transform-arrow-functions",
        "@babel/transform-modules-commonjs"
    ],
    "env": {
        "development": {},
        "test": {},
        "production": {}
    }
}

Аналогично jest.config.js, что прямо из jest --init:

module.exports = {
    clearMocks: true,
    coverageDirectory: "coverage",
    testEnvironment: "jsdom"
};

Есть идеи, что может пойти не так?

1 Ответ

0 голосов
/ 07 ноября 2018

Попробуйте запустить npm install --save-dev babel-jest babel-core@^7.0.0-bridge @babel/core, я думаю, что команда babel выпустила пакет моста, чтобы помочь зависимостям, затронутым обновлением v7.

Смотрите здесь для получения дополнительной информации: https://github.com/facebook/jest/tree/master/packages/babel-jest#usage

...