2016-04-19 74 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