如何结合 SystemJs 相对路径并使用 karma/jasmine 进行测试
How to combine SystemJs relative path and test using karma/jasmine
我目前在我的组件中使用 systemJs 相对路径,在我的 .ts 文件中使用此语法:
declare var __moduleName:string;
@Component({
moduleId: __moduleName,
...
})
...
一切正常,直到我想在测试中导入该组件。我从 karma 得到了以下非详细错误:
Chrome 52.0.2743 (Linux 0.0.0) ERROR
{
"originalErr": {}
}
如果我删除该行:
moduleId: __moduleName,
从组件转译的 .js 文件来看,我的所有测试都运行良好。
如果有人知道如何结合此 systemjs 相对路径语法和 karma / jasmine 工具,我们将不胜感激。
目前,Angular2 的最佳实践是使用 commonjs
作为您的 moduleId
条目并使用 commonjs
.
编译您的应用程序
tsconfig.json:
{
"compilerOptions": {
"module": "commonjs",
...
...
}
}
使用 commonjs
编译将在 karma/jasmine 和 angular2 中正常工作。
您只需更换
@Component({
moduleId: __moduleName,
...
})
...
和
@Component({
moduleId: module.id,
...
})
...
并删除
declare var __moduleName:string;
我目前在我的组件中使用 systemJs 相对路径,在我的 .ts 文件中使用此语法:
declare var __moduleName:string;
@Component({
moduleId: __moduleName,
...
})
...
一切正常,直到我想在测试中导入该组件。我从 karma 得到了以下非详细错误:
Chrome 52.0.2743 (Linux 0.0.0) ERROR
{
"originalErr": {}
}
如果我删除该行:
moduleId: __moduleName,
从组件转译的 .js 文件来看,我的所有测试都运行良好。
如果有人知道如何结合此 systemjs 相对路径语法和 karma / jasmine 工具,我们将不胜感激。
目前,Angular2 的最佳实践是使用 commonjs
作为您的 moduleId
条目并使用 commonjs
.
tsconfig.json:
{
"compilerOptions": {
"module": "commonjs",
...
...
}
}
使用 commonjs
编译将在 karma/jasmine 和 angular2 中正常工作。
您只需更换
@Component({
moduleId: __moduleName,
...
})
...
和
@Component({
moduleId: module.id,
...
})
...
并删除
declare var __moduleName:string;