karma-typescript:使用 Async 关键字导入 JS 文件

Posted

技术标签:

【中文标题】karma-typescript:使用 Async 关键字导入 JS 文件【英文标题】:karma-typescript: import JS file with Async keyword 【发布时间】:2019-04-24 01:40:24 【问题描述】:

我正在使用 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 关键字,一切都会好起来的。

如何编辑我的 karma 配置文件来修复错误?

【问题讨论】:

我们遇到了类似的问题。你知道修复它的方法吗? 【参考方案1】:

根据 karma-typescript 包 (https://github.com/monounity/karma-typescript/issues/344) 的 Github 中的一个问题,有一个未记录的标志可以帮助您测试包含 ES2017 代码的代码:

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

这个标志使我们的问题出现在async 关键字上。但是,即使使用此标志,我们的代码中的扩展语法 (...array) 仍然存在问题。如果有人知道如何解决这个问题,我会很乐意扩展我的答案。

【讨论】:

以上是关于karma-typescript:使用 Async 关键字导入 JS 文件的主要内容,如果未能解决你的问题,请参考以下文章

Karma-typescript Interface XXX 不能同时扩展类型' YYY

如何在 karma 测试运行器中包含来自 webpack 的供应商捆绑包

如何在async.race函数中使用async.retry

js异步回调Async/Await与Promise区别 新学习使用Async/Await

async.map 或 async.each 与 async.parallel 有啥区别?

async.map 或 async.each 与 async.parallel 有啥区别?