无法从 PATH 中找到模块“babel-preset-env”您的意思是“@babel/env”吗?

问题描述 投票:0回答:6

Jest 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"]
    }
  }
}
node.js jestjs babeljs
6个回答
46
投票

在 .babelrc 文件的测试部分中,您不小心使用了无范围预设 (

"presets": ["env"]
)。这曾经是 Babel 7 和
@babel
范围之前的方法。更重要的是,由于您已经将
@babel/preset-env
配置为全局预设,因此无需为测试环境再次定义它。删除整个测试环境配置如下所示应该可以解决您的问题:

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

26
投票

你可以通过 npm 尝试这个

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

7
投票

这对我有用:

.babelrc

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

.eslintrc
(将
@babel/core
添加到现有配置列表中)

{
  "extends": ["@babel/core", ...EXISTING-CONFIGS-HERE]
}

2
投票

当我用 2 个不同版本的节点打开 2 个终端时,我遇到了这个问题。 (我安装了NVM来使用不同版本的节点)

  • 终端 1:npm install(正确,这是节点 14)
  • 终端 2:npm run dev (错误,这是节点 16)

所以解决方案非常简单:

  1. 删除
    node_modules
  2. 使用相同的节点版本运行
    npm install
    npm run dev

1
投票

我在使用 Sanity 构建的 ReactJS 项目时遇到了同样的问题。 我将以下代码添加到

.eslintrc

{
  "extends": ["@sanity/eslint-config-studio", "@babel/core"]
}

0
投票

我有同样的错误.. Eslint 快疯了,这对我有用:

{ “扩展”:[“@sanity/eslint-config-studio”,“@babel/core”], “解析器”:“@babel/eslint-parser”, “解析器选项”:{ “requireConfigFile”:假, “巴贝尔选项”:{ “预设”:[“@babel/preset-env”] } } }

© www.soinside.com 2019 - 2024. All rights reserved.