从PATH中找不到模块“ babel-preset-env”,您是说“ @ babel / env”吗?

时间:2019-06-09 23:45:22

标签: node.js jestjs babeljs

玩笑cli突然停止工作,所有测试均失败,并显示以下信息:

Cannot find module 'babel-preset-env' from '/PATH'
    - Did you mean "@babel/env"?

我确定使用babel 6的模块与使用babel 7的项目之间存在某种不兼容,但是我不确定该如何解决。

这是package.json

{
  "name": "testing101",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "parcel index.html",
    "test": "jest src/*.js --watchAll",
    "nyc": "nyc ava",
    "build": "babel src/*.js -d dist"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/core": "^7.4.5",
    "@babel/preset-env": "^7.4.5",
    "@types/jest": "^24.0.13",
    "jest": "^24.8.0",
    "nyc": "^14.1.1",
    "parcel-bundler": "^1.7.0"
  },
  "jest": {
    "verbose": true,
    "testURL": "http://localhost:1234/",
    "collectCoverage": true
  },
  "dependencies": {
    "axios": "^0.18.0",
    "nock": "^10.0.6"
  }
}

这是.babelrc

{
  "presets": ["@babel/preset-env"],
  "env": {
    "test": {
      "presets": ["env"]
    }
  }
}

3 个答案:

答案 0 :(得分:4)

你可以通过 npm 试试这个

npm install --save-dev @babel/preset-env

答案 1 :(得分:1)

在.babelrc文件的测试部分中,您意外使用了无范围的预设("presets": ["env"])。这曾经是在Babel 7和@babel范围之前执行此操作的方法。除此之外,由于您已经将@babel/preset-env配置为全局预设,因此无需为测试环境再次定义它。在下面删除整个测试环境配置可以解决您的问题:

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

答案 2 :(得分:1)

它对我有用,当从 babel 6.x 升级到 7.x 时,我不得不将 .bablerc 中的 ['env'] 更改为 ['@babel/preset-env'] - 谢谢!!! enter image description here