2016-04-19 15 views
20

तो ava build-in ES2015 support के साथ आता है, जो मेरी वास्तविक परीक्षण फ़ाइलों के लिए ठीक काम करता है। हालांकि, जब मैं करता हूँava: सिंटेक्स त्रुटि: अप्रत्याशित टोकन आयात

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 

मैं कोई विशेष कोलाहल विन्यास परीक्षण फ़ाइलों के लिए के रूप में स्थापित किया है यह बॉक्स से बाहर काम करता है। क्या कोई मुझे बता सकता है कि सहायक निर्भरता क्यों बेबेल के साथ पारदर्शी नहीं होती है? test/**/helpers का उपयोग ava convention का भी पालन कर रहा है।

धन्यवाद, रॉबिन

समाधान

तो thangngoc89 के समाधान पर आधारित है, जो मैं बनाने के लिए किया था यह काम था:

  1. एक .babelrc सामग्री के साथ जोड़ें:
{ 
    "presets": [ 
    "es2015", 
    "stage-2" 
    ], 
    "plugins": [ 
    "espower", 
    "transform-runtime" 
    ] 
} 
  1. जोड़ा package.json लिए: AVA केवल परीक्षण फ़ाइलों transpile
"ava": { 
    "require": ["babel-register"], 
    "babel": "inherit" 
} 
+2

'" की आवश्यकता होती है ": [" कोलाहल से रजिस्टर "],' package.json में भले ही आवश्यक है http://babeljs.io/ दस्तावेज़/सेटअप/# स्थापना का उल्लेख नहीं है। –

उत्तर

18

। परीक्षण निर्भरता नहीं है इसलिए आपको अपनी परियोजना में बेबेल सेट करने की आवश्यकता होगी (मुझे लगता है कि आपने ऐसा किया क्योंकि आप वैसे भी ES6 का उपयोग कर रहे हैं)।

फिर AVA की सेटिंग में, इस जोड़ें:

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

इसका मतलब है कि परीक्षण निर्भरता transpile अपनी परियोजना कोलाहल सेटिंग का उपयोग करें। एवीए दस्तावेज़ों में अधिक जानकारी देखें: https://github.com/sindresorhus/ava/blob/master/docs/recipes/babelrc.md

2

rweng का उपयोग करके, मेरा समाधान थोड़ा आसान हो गया।

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

दुर्भाग्य से मानक समाधान मेरे मामले के लिए काम नहीं किया। यहाँ मेरी समाधान जो Ava + कैसर + Vue परियोजना

के लिए काम किया

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

पैकेज .babelrc है।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 
संबंधित मुद्दे