2016-04-19 75 views
20

所以ava自带build-in ES2015 support,对我的实际测试文件来说工作正常。然而,当我做ava:SyntaxError:意外令牌导入

import {newUser, createUser, login} from './helpers/user'; 

我不能使用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 

我没有具体通天配置设置为测试它的文件开箱即用。任何人都可以向我解释为什么助手依赖不会与babel一起被传输吗?使用test/**/helpers甚至跟在ava convention之后。

感谢, 罗宾

解决方案

因此,基于thangngoc89的解决方案,我做了什么,使其工作是:

  1. 添加.babelrc与内容:
{ 
    "presets": [ 
    "es2015", 
    "stage-2" 
    ], 
    "plugins": [ 
    "espower", 
    "transform-runtime" 
    ] 
} 
  • 加进package.json
  • "ava": { 
        "require": ["babel-register"], 
        "babel": "inherit" 
    } 
    
    +2

    的' “需要”:[ “巴别寄存器”],在'是的package.json必要即使http://babeljs.io/ docs/setup /#安装没有提及它。 –

    回答

    18

    AVA仅transpile测试文件。不测试依赖项,所以你需要在你的项目中设置babel(我想你是这么做的,因为你使用ES6)。

    然后在AVA的设置,补充一点:

    "ava" { 
        ... 
        "babel": "inherit" 
    } 
    

    这意味着,使用您的项目巴贝尔设置transpile测试的依赖。查看AVA文档中的更多信息:https://github.com/sindresorhus/ava/blob/master/docs/recipes/babelrc.md

    2

    使用rweng,我的解决方案变得更简单了。

    1. .babelrc
    { 
        "presets": [ 
        "es2015" 
        ], 
        "plugins": [ 
        "transform-runtime" 
        ] 
    } 
    
  • package.json
  • "ava": { 
        "require": ["babel-register"], 
        "babel": "inherit" 
    } 
    
    2

    不幸的是标准溶液用于我的情况下不工作。 这里是我的解决方案,工作了AVA +类星体+ VUE项目

    .babelrc

    { 
        "presets": [ 
        "es2017", 
        "@ava/stage-4", 
        "stage-3" 
        ], 
        "plugins": [ 
        "transform-runtime" 
        ] 
    } 
    

    包。JSON

    "ava": { 
        "require": [ 
        "babel-register" 
        ], 
        "babel": "inherit" 
    }, 
    "scripts": { 
        "ava": "NODE_ENV=test ava", 
        "test": "ava", 
        "test:watch": "ava --watch --verbose" 
    } 
    

    安装模块

    yarn add babel-register babel-preset-es2017 @ava/babel-preset-stage-4 babel-plugin-transform-runtime babel-preset-stage-3 --dev