Requires Babel “^7.0.0-0”, but was loaded with “6.

2020-08-11 10:15发布

问题:

I have migrated my app to babel 7 beta and everything seems to work except the tests. I think I've read everything out there but I'm still getting this error:

● Test suite failed to run

Requires Babel "^7.0.0-0", but was loaded with "6.26.0". If you are sure you have a compatible version of @babel/core, it is likely

that something in your build process is loading the wrong version. Inspect the stack trace of this error to look for the first entry that doesn't mention "@babel/core" or "babel-core" to see what is calling Babel.

  at throwVersionError (node_modules/@babel/helper-plugin-utils/lib/index.js:65:11)
  at Object.assertVersion (node_modules/@babel/helper-plugin-utils/lib/index.js:13:11)
  at _default (node_modules/@babel/plugin-proposal-class-properties/lib/index.js:81:7)
  at node_modules/@babel/helper-plugin-utils/lib/index.js:19:12
      at Array.map (<anonymous>)

Test Suites: 8 failed, 8 total

babelrc

{
  "presets": [
    "@babel/preset-env",
    "@babel/preset-react",
    "@babel/preset-flow"
  ],
  "plugins": [
    ["module-resolver", {
      "alias": {
        "static": "./static",
        "common": "./src/common",
        "data": "./src/data"
      }
    }],
    ["styled-jsx/babel", { "plugins": ["styled-jsx-plugin-sass"] }],
    "@babel/plugin-proposal-class-properties",
    "@babel/plugin-syntax-dynamic-import"
  ]
}

devDependencies

  "devDependencies": {
    "@babel/cli": "^7.0.0-beta.49",
    "@babel/core": "^7.0.0-beta.49",
    "@babel/plugin-proposal-class-properties": "^7.0.0-beta.49",
    "@babel/plugin-syntax-dynamic-import": "^7.0.0-beta.49",
    "@babel/preset-env": "^7.0.0-beta.49",
    "@babel/preset-flow": "^7.0.0-beta.49",
    "@babel/preset-react": "^7.0.0-beta.49",
    "babel-core": "^7.0.0-0",
    "babel-eslint": "8.2.3",
    "babel-loader": "^8.0.0-beta",
    "babel-plugin-module-resolver": "^3.1.1",
    "clean-webpack-plugin": "^0.1.19",
    "copy-webpack-plugin": "^4.5.1",
    "enzyme": "^3.3.0",
    "enzyme-adapter-react-16": "^1.1.1",
    ...

jest.config.js

module.exports = {
  rootDir: '<rootDir>/../../',
  collectCoverageFrom: ['src/**/*.(jsx|js)'],
  moduleNameMapper: {
    '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
      '<rootDir>/tests/fileMock.js',
  },
  setupTestFrameworkScriptFile: '<rootDir>/tests/setupTests.js',
};

I run it with command:

"test": "jest --config tests/jest.config.js",

回答1:

You need to have both babel-core@^7 and @babel/core@^7 along with babel-jest@latest, try adding

yarn add babel-jest babel-core@^7.0.0-0

as mentioned in here https://github.com/facebook/jest/issues/5525



回答2:

In my case, it turned out I had explicitly install this package by npm i -D babel-jest.