用于“ava”测试的 ES6 导入不起作用

Cle*_*ent 8 javascript testing ava

我按照文档使用ava创建了我的第一个测试,但它似乎无法正常运行。我收到以下错误。我尝试import 'babel-register';在文件顶部添加,它可以工作,但前提是我运行一个特定的测试文件。例如ava ./test/helpers/test_helper.jsava虽然单独运行...导致下面的导入错误。有没有其他人知道如何解决这个问题?入门指南使用 ES6 导入,我不知道为什么我的不能正常工作。

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

测试.js

import test from 'ava';

test(t => {
  t.deepEqual([1, 2], [1, 2]);
});
Run Code Online (Sandbox Code Playgroud)

Joe*_*Chu 24

有一种更简单的方法来处理 AVA 的 ES 模块

$ npm install esm --save-dev 

Run Code Online (Sandbox Code Playgroud)

然后在你的 package.json 添加


{
    "ava": {
        "require": [
            "esm"
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

Babel 永远不会正常工作,我每天花更多的时间在调试工具上,而不是我的代码和所有这些 CS!

  • 我发现这是最简单、最干净的解决方案。 (2认同)

use*_*344 5

添加到您的 package.json

"ava": {
  "files": [
    "test/**/*.js"
  ],
  "require": [
    "babel-register"
  ],
  "babel": "inherit"
},
Run Code Online (Sandbox Code Playgroud)

您的 .babelrc

{
  "presets": ["es2015"]
}
Run Code Online (Sandbox Code Playgroud)

然后你的进口应该工作。

  • 这对于 AVA 1.x 仍然适用吗? (2认同)