karma-typescript: импортировать файл JS с ключевым словом Async

Я использую karma-typescript с этим конфигурационным файлом karma:

karmaTypescriptConfig: {
  compilerOptions: {
    target: "es5",
    lib: ["dom", "es2015", "es2017"]
  },
  bundlerOptions: {
    transforms: [require("karma-typescript-es6-transform")()]
  }
},

В моих файлах спецификаций у меня есть этот код:

import {} from './local/lib.js'

В моем lib.js у меня есть этот код:

async function() {}

При выполнении моих тестов с npm test у меня возникает эта ошибка:

ERROR [source-reader.karma-typescript] Error parsing code: Unexpected token (X:Y) in /local/lib.js

Если я удалю ключевое слово async, все будет в порядке.

Как я могу отредактировать файл конфигурации моей кармы, чтобы исправить ошибку?


person Menencia    schedule 21.11.2018    source источник
comment
Мы столкнулись с похожими проблемами. Вы знаете способ исправить это?   -  person andreas    schedule 13.09.2019


Ответы (1)


Согласно проблеме в Github пакета karma-typescript (https://github.com/monunity/karma-typescript/issues/344), есть недокументированный флаг, который может помочь вам протестировать код, содержащий код ES2017:

karmaTypescriptConfig: {
  compilerOptions: {
    target: "es5",
    lib: ["dom", "es2015", "es2017"]
  },
  bundlerOptions: {
    acornOptions: {
      ecmaVersion: 8,
    },
    transforms: [require("karma-typescript-es6-transform")()]
  }
},

Этот флаг вызвал проблемы с ключевым словом async. Однако проблема с синтаксисом распространения (...array) в нашем коде все еще существует, даже при использовании этого флага. Если кто-нибудь знает ответ, как это исправить, я с радостью дополню свой ответ.

person andreas    schedule 13.09.2019