Reflect.getOwnMetadata 不是最新 Aurelia 的业力函数

Reflect.getOwnMetadata is not a function in karma with latest Aurelia

更新到最新版本的 Aurelia 后(3 月更新 beta.1.1.4),我每次 运行 业力测试时都会收到以下错误:

Error: Reflect.getOwnMetadata is not a function
Error loading C:/Software/myproject/test/unit/myclass.spec.ts

我该如何解决?

这与 Aurelia 从 core-js 到本地 polyfill 的变化有关。缺少 Reflect polyfill,测试失败 运行。

这个问题在 Aurelia 导航骨架应用程序中通过每个单元测试文件中的以下导入语句得到解决:

import 'aurelia-polyfills';

我通过仅使用此语句创建一个 setup.ts(或 setup.js resp. to your language)文件解决了这个问题,然后将其列在 karma.config.js 的第一位.

对于 JS 例如:

jspm  : {
  loadFiles: ['test/unit/setup.js', 'test/unit/**/*.js'],
  ...
}

对于 Typescript 例如:

files: ['test/unit/setup.ts', 'test/unit/**/*.ts'],
...