Jest框架将错误抛出为Jquery导入的“意外标识符”

时间:2018-04-03 06:36:18

标签: reactjs jestjs

当我尝试导入Jquery时

import $ from 'jquery';

内部测试文件

或喜欢

import $ from 'jquery'; global.$ = global.jQuery = $;

在Jest安装文件中,我收到错误

● Runtime Error- SyntaxError: Unexpected identifier
    at new Function (<anonymous>)
    at createMockFunction (node_modules/jest-mock/build/index.js:179:10)
    at Array.forEach (<anonymous>)
    at Array.forEach (<anonymous>)

如何解决此问题?检查Jquery的路径和node_modules都没问题。使用Jest版本“^ 14.1.0”。

2 个答案:

答案 0 :(得分:1)

我有Jest(v24.7.0)的较新版本,所以我不确定此答案是否与问题中使用的Jest版本一起使用。

关于Jest文档的注释:

  

注意:babel-jest是在安装Jest时自动安装的,如果项目中存在babel配置,它将自动转换文件。

我在Jest documentation本身上找到了解决方案:

  1. 安装以下依赖项:npm install --save-dev babel-jest @babel/core @babel/preset-env
  2. 在项目的根目录中为Babel添加与此配置文件类似的配置文件:
// babel.config.js
module.exports = {
  presets: [
    [
      '@babel/preset-env',
      {
        targets: {
          node: 'current',
        },
      },
    ],
  ],
};

答案 1 :(得分:0)

尝试使用@babel/preset-env。这是一个示例.babelrc

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

您当然可以添加其他配置选项。重要的是将@babel/preset-env对象中的preset设置为env.test