ava:SyntaxError:意外的令牌导入

rwe*_*eng 27 ava

所以ava带有内置的ES2015支持,适用于我的实际测试文件.但是,当我这样做的时候

import {newUser, createUser, login} from './helpers/user';
Run Code Online (Sandbox Code Playgroud)

我无法import在帮助文件中使用和导出,然后我得到:

Users/rowe/Code/fv/foxvision-api/test/api/helpers/user.js:1
(function (exports, require, module, __filename, __dirname) { import request from 'supertest';

SyntaxError: Unexpected token import
Run Code Online (Sandbox Code Playgroud)

我没有设置特定的babel配置,因为它开箱即用的测试文件.任何人都可以向我解释为什么帮助器依赖关系不会被babel转换?使用test/**/helpers甚至遵循ava惯例.

谢谢,罗宾

所以基于thangngoc89的解决方案,我做的工作是:

  1. 添加.babelrc内容:
{
  "presets": [
    "es2015",
    "stage-2"
  ],
  "plugins": [
    "espower",
    "transform-runtime"
  ]
}
Run Code Online (Sandbox Code Playgroud)
  1. 添加到package.json:
"ava": {
  "require": ["babel-register"],
  "babel": "inherit"
}
Run Code Online (Sandbox Code Playgroud)

tha*_*c89 20

AVA只会传输测试文件.不测试依赖项,因此您需要在项目中设置babel(我想你是因为你正在使用ES6而这样做).

然后在AVA的设置中,添加:

"ava": {
  ...
  "babel": "inherit"
}
Run Code Online (Sandbox Code Playgroud)

这意味着使用您的项目babel设置来转换测试依赖项.请参阅AVA文档中的更多信息:https://github.com/sindresorhus/ava/blob/master/docs/recipes/babelrc.md