首页 > 解决方案 > 持续的笑话错误:需要 Babel“^7.0.0-0”,但加载了“6.26.3”

问题描述

每当我使用 npm 在服务器端安装我的依赖项时,我都会收到一个持续的 Jest 错误。使用 yarn 安装相同的依赖项是可行的,但我目前正在一个团队工作,我们都在使用 npm。我已经在 Stack Overflow 上尝试了所有建议的解决方案,无论是否赞成,但没有一个对我有用。到目前为止,我问过的两位高级开发人员认为我的全局安装的 npm 包中没有任何东西会导致这种情况。

对于我运行的每个 Jest 测试套件,我都会收到此错误:

● 测试套件无法运行

Requires Babel "^7.0.0-0", but was loaded with "6.26.3". 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 tolook 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-decorators/lib/index.js:35:7)
  at node_modules/@babel/helper-plugin-utils/lib/index.js:19:12
  at Function.memoisePluginContainer (../../../node_modules/babel-core/lib/transformation/file/options/option-manager.js:113:13)      at Function.normalisePlugin (../../../node_modules/babel-core/lib/transformation/file/options/option-manager.js:146:32)      at ../../../node_modules/babel-core/lib/transformation/file/options/option-manager.js:184:30
      at Array.map (<anonymous>)
  at Function.normalisePlugins (../../../node_modules/babel-core/lib/transformation/file/options/option-manager.js:158:20)
  at OptionManager.mergeOptions (../../../node_modules/babel-core/lib/transformation/file/options/option-manager.js:234:36)
  at OptionManager.init (../../../node_modules/babel-core/lib/transformation/file/options/option-manager.js:368:12)
  at File.initOptions (../../../node_modules/babel-core/lib/transformation/file/index.js:212:65)
  at new File (../../../node_modules/babel-core/lib/transformation/file/index.js:135:24)
  at Pipeline.transform (../../../node_modules/babel-core/lib/transformation/pipeline.js:46:16)

这就是我的 package.json 的样子:

{
  "name": "nanny-now",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "jest --verbose --runInBand",
    "test:watch": "npm run test -- --watch",
    "build": "babel src -d lib -s true",
    "start": "node lib/index.js",
    "start:watch": "nodemon src/index.js --exec babel-node"
  },
  "jest": {
    "testEnvironment": "node"
  },
  "repository": {
    "type": "git",
    "url": ""
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/cli": "^7.1.5",
    "@babel/core": "^7.2.0",
    "@babel/node": "^7.0.0",
    "@babel/plugin-proposal-class-properties": "^7.1.0",
    "@babel/plugin-proposal-decorators": "^7.1.6",
    "@babel/plugin-syntax-dynamic-import": "^7.0.0",
    "@babel/preset-env": "^7.1.6",
    "babel-eslint": "^10.0.1",
    "babel-jest": "^23.6.0",
    "chance": "^1.0.18",
    "eslint": "^5.9.0",
    "eslint-plugin-babel": "^5.3.0",
    "jest": "^23.6.0",
    "nodemon": "^1.18.7",
    "supertest": "^3.3.0"
  },
  "dependencies": {
    "bcryptjs": "^2.4.3",
    "dotenv": "^6.2.0",
    "express": "^4.16.4",
    "jsonwebtoken": "^8.4.0",
    "mongoose": "^5.3.14",
    "morgan": "^1.9.1",
    "regenerator-runtime": "^0.13.1"

} }

这是我的 .babelrc 文件:

{
  "presets": [
   "@babel/preset-env"
  ],
  "plugins": [
    [
      "@babel/plugin-proposal-decorators",
      {
        "decoratorsBeforeExport": true
      }
    ],
    "@babel/plugin-proposal-class-properties"
  ]
}

标签: npmjestjsbabeljs

解决方案


正如George Artemiou所说,发生此错误是因为您在项目中使用 Babel 7,而 jest 仍然使用 Babel 6。

我有同样的问题,我通过安装解决了它babel-core@^7.0.0-bridge.0

另见: https ://github.com/babel/babel-bridge


推荐阅读