如何在Webpack中使用Jest和ES6功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Webpack中使用Jest和ES6功能相关的知识,希望对你有一定的参考价值。

当我使用像import和运行jest的ES6功能时,我收到此错误:

SyntaxError: Unexpected token import

它建议

 Here's what you can do:
     • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
     • If you need a custom transformation specify a "transform" option in your config.
     • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.

当我使用Webpack时,我不需要转换。但看起来我需要使用Jest。我该怎么做?如何在配置中使用transform选项?

所有我在package.json中都有Jest相关的

"jest": {
        "verbose": true
    },
"scripts": {
        "test": "jest"
    },

答案

看看文件Using with webpack 2。您需要配置babel以使其工作。

另一答案

这解决了:

  • 安装babel-jestbabel-preset-es2015
  • 使用以下预设添加.babelrc文件
{
    "presets": ["es2015"]
}
  • 在jest配置中添加以下转换选项
    "jest": {
        "verbose": true,
        "transform": {
            "^.+\.js$": "babel-jest"
        }
    },

以上是关于如何在Webpack中使用Jest和ES6功能的主要内容,如果未能解决你的问题,请参考以下文章

为 Typescript、es6 和 Webpack 2 配置 Jest

在 Jest 测试中使用 Webpack 的 DefinePlugin 变量

无法在基于 jest 和 vue-test-utils 的测试项目中使用 vue.js 的 ES6 模块

如何在 webpack 中使用 jest?

如何将 jest 与 coffeescript 和 ES6/ES2015 一起使用(例如通过 Babel)?

使用 Jest 模拟 Es6 类