javascript - Ava babel-register 不转译

标签 javascript testing electron babeljs ava

我正在尝试将 Ava(从 mocha 迁移)作为我的 react /Electron 应用程序的测试运行器。

我的 package.json 中有这个配置

  "ava": {
    "files": [
      "./app/**/*.spec.js"
    ],
    "source": [
      "./app/**/*.{js,jsx}"
    ],
    "concurrency": 5,
    "failFast": true,
    "require": [
      "babel-register",
      "ignore-styles",
      "./app/test/setup.js"
    ],
    "babel": {
      "presets": [
        "es2015",
        "react"
      ]
    }
  },

我的 setup.js 只是一个设置 jsdom 的助手。

我不断收到错误:

(function (exports, require, module, __filename, __dirname) { import { jsdom } from 'jsdom';
                                                              ^^^^^^
SyntaxError: Unexpected token import

所以看起来 babel-register 没有被正确要求。

最佳答案

您可能已经找到了答案,但我想分享我的解决方案。对我来说,就是将 babel 部分移到 ava 部分旁边,如下所示:

{
  "ava": { ... ava config ... },
  "babel": { ... babael config ... }
}

完整示例

{
  "ava": {
    "files": [
      "./app/**/*.spec.js"
    ],
    "source": [
      "./app/**/*.{js,jsx}"
    ],
    "concurrency": 5,
    "failFast": true,
    "require": [
      "babel-register",
      "ignore-styles",
      "./app/test/setup.js"
    ]
  },
  "babel": {
    "babelrc": false,
    "presets": [
      "es2015",
      "react"
    ]
  }
}

原因是这是 babel 搜索的内容。 package.json 配置或 .babelrc 文件。

关于javascript - Ava babel-register 不转译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40248844/

相关文章:

javascript - 当 Angular Service 将动态 URL 作为常量时,如何处理?

javascript - 在 Javascript 中查找捕获关键事件的函数?

javascript - 无法使用 mocha 和 supertest 测试 OPTIONS 方法

javascript - Electron 与 Angular 中的实时模式不加载 node_module 资源

javascript - 如何防止跨域iframe window.top访问?

javascript - 如何在vuejs中异步加载图片src url?

javascript - 保存成功不使用 parse.com 对象

使用元运算符进行测试不会打印测试描述

java - 从没有接口(interface)的两个不同类组继承的解决方案

node.js - 如何将预编译的二进制文件与 Electron 捆绑在一起