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"]
}
}
}
在 .babelrc 文件的测试部分中,您不小心使用了无范围预设 (
"presets": ["env"]
)。这曾经是 Babel 7 和 @babel
范围之前的方法。更重要的是,由于您已经将 @babel/preset-env
配置为全局预设,因此无需为测试环境再次定义它。删除整个测试环境配置如下所示应该可以解决您的问题:
{
"presets": ["@babel/preset-env"]
}
你可以通过 npm 尝试这个
npm install --save-dev @babel/preset-env
这对我有用:
.babelrc
{
"presets": ["@babel/preset-env"]
}
.eslintrc
(将 @babel/core
添加到现有配置列表中)
{
"extends": ["@babel/core", ...EXISTING-CONFIGS-HERE]
}
当我用 2 个不同版本的节点打开 2 个终端时,我遇到了这个问题。 (我安装了NVM来使用不同版本的节点)
所以解决方案非常简单:
node_modules
npm install
和 npm run dev
。我在使用 Sanity 构建的 ReactJS 项目时遇到了同样的问题。 我将以下代码添加到
.eslintrc
{
"extends": ["@sanity/eslint-config-studio", "@babel/core"]
}
我有同样的错误.. Eslint 快疯了,这对我有用:
{ “扩展”:[“@sanity/eslint-config-studio”,“@babel/core”], “解析器”:“@babel/eslint-parser”, “解析器选项”:{ “requireConfigFile”:假, “巴贝尔选项”:{ “预设”:[“@babel/preset-env”] } } }