ava

ava: SyntaxError: importación de token inesperada



(3)

Así que ava viene con soporte ES2015 incorporado , que funciona bien para mis archivos de prueba reales. Sin embargo, cuando lo hago

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

No puedo usar import y exportar en el archivo auxiliar, luego obtengo:

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

No tengo una configuración específica de babel configurada, ya que para los archivos de prueba funciona de forma inmediata. ¿Alguien puede explicarme por qué las dependencias del ayudante no se transfieren a babel? El uso de test/**/helpers es incluso siguiendo la convención ava .

Gracias robin

Solución

Entonces, basado en la solución de thangngoc89 , lo que hice para que funcionara fue:

  1. Agrega un .babelrc con contenido:

{ "presets": [ "es2015", "stage-2" ], "plugins": [ "espower", "transform-runtime" ] }

  1. Añadido a package.json :

"ava": { "require": ["babel-register"], "babel": "inherit" }


AVA solo transpila los archivos de prueba. No pruebes dependencias, así que necesitarás configurar babel en tu proyecto (supongo que lo hiciste porque de todos modos estás usando ES6).

Luego, en la configuración de AVA, agregue esto:

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

Significa que usa la configuración de babel de tu proyecto para recopilar las dependencias de prueba. Ver más información en los documentos de AVA: https://github.com/sindresorhus/ava/blob/master/docs/recipes/babelrc.md


Desafortunadamente la solución estándar no funcionó para mi caso. Aquí está mi solución que funcionó para el proyecto ava + quasar + vue

.babelrc

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

paquete.json

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

instalar modulos

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


Usando , mi solución salió un poco más simple.

  1. .babelrc

{ "presets": [ "es2015" ], "plugins": [ "transform-runtime" ] }

  1. package.json :

"ava": { "require": ["babel-register"], "babel": "inherit" }