javascript - 尝试运行 Jest 时无法识别 Babel 插件

标签 javascript webpack jestjs babeljs

我刚刚开始编写一些 Jest 测试,但立即遇到了一个“未知插件”错误,否则似乎是一个完全正常工作的 Webpack/Babel 设置,在 npm run dev 上运行良好。/npm run build阶段。

具体来说,我得到 ReferenceError: Unknown plugin "@babel/transform-async-to-generator" specified in "C:\\Users\\scott\\path\\to\\ThisProject\\.babelrc" at 0, attempted to resolve relative to "C:\\Users\\scott\\path\\to\\ThisProject"

(错误是这样读的,因为我在 Windows 上的 Git Bash 中。)

我肯定有@babel/plugin-transform-async-to-generator安装。

我的相关部分package.json看起来像:

"scripts": {
  "test": "jest",
  "build": "webpack --mode=production",
  "dev": "webpack --mode=development"
},
"jest": {
  "transform": {
    "^.+\\.jsx?$": "babel-jest"
  }
},
"dependencies": {
  "@babel/core": "^7.1.2",
  "@babel/plugin-transform-arrow-functions": "^7.0.0",
  "@babel/plugin-transform-async-to-generator": "^7.1.0",
  "@babel/plugin-transform-modules-commonjs": "^7.1.0",
  "@babel/plugin-transform-runtime": "^7.1.0",
  "@babel/polyfill": "^7.0.0",
  "@babel/preset-env": "^7.1.0",
  "babel-loader": "^8.0.4",
  "clean-webpack-plugin": "^0.1.19",
  "copy-webpack-plugin": "^4.5.2",
  "webpack": "^4.20.2",
  "webpack-cli": "^3.1.2"
},
"devDependencies": {
  "ajv": "^6.5.4",
  "babel-jest": "^23.6.0",
  "eslint": "^5.8.0",
  "jest": "^23.6.0",
  "jsdom": "^13.0.0",
}

我的 .babelrc很简单:

{
    "presets": [
        [
            "@babel/preset-env",
            {
                "targets": {
                    "ie": "11"
                },
                "useBuiltIns": "entry"
            }
        ]
    ],
    "plugins": [
        "@babel/transform-async-to-generator",
        "@babel/transform-arrow-functions",
        "@babel/transform-modules-commonjs"
    ],
    "env": {
        "development": {},
        "test": {},
        "production": {}
    }
}

同样jest.config.js直接来自 jest --init :

module.exports = {
    clearMocks: true,
    coverageDirectory: "coverage",
    testEnvironment: "jsdom"
};

对可能出现的问题有什么想法吗?

最佳答案

尝试运行 npm install --save-dev babel-jest babel-core@^7.0.0-bridge @babel/core,我相信 babel 团队发布了一个桥包来帮助依赖受 v7 升级的影响。

查看此处了解更多信息:https://github.com/facebook/jest/tree/master/packages/babel-jest#usage

关于javascript - 尝试运行 Jest 时无法识别 Babel 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53194057/

相关文章:

node.js - 如何调试 webpack?

jquery - 在 TypeScript 中安装 jQuery 时出错

javascript - 如果 JSHint 在监视任务期间失败,如何使 Grunt 构建失败?

javascript - AngularJS:避免在收到响应之前两次调用相同的 REST 服务

javascript - javascript中字符串前的+是什么意思

typescript - 使用 Jest/Typescript 测试 fs 库函数

vue.js - 如何使用 vue 和 jest 测试拖放

javascript - 为数组原型(prototype)添加了新方法

javascript - 引用错误: bookshelf is not defined

jasmine - 如何将 jasmine spec runner 与 jest 一起使用