Karma 找不到 angular2 "barrel" 导入
Karma cannot find angular2 "barrel" import
我们有一个使用桶导入模式的 Angular2 项目。我正在尝试为其编写单元测试,但是 Karma 似乎无法找到 barrel 语句引用的模块。
正在测试的文件导入使用:
import {provider1, provider2, provider3} from "../../../core/providers";
import {component1} from "../../controls";
并且 karma 输出以下警告:
13 05 2016 08:57:43.732:WARN [web-server]: 404: /base/src/app/core/providers
13 05 2016 08:57:43.732:WARN [web-server]: 404: /base/src/app/core/controls
现在加载我们的客户端脚本的 karma 配置文件部分:
// paths loaded via module imports
{ pattern: "src/app/**/*.js", included: false, watched: true },
// paths to support debugging with source maps in dev tools
{ pattern: "src/app/**/*.ts", included: false, watched: false },
这应该加载所有客户端脚本,但我认为由于我正在单元测试的文件使用桶导入,Karma 不知道如何处理它。我也不...
我曾尝试为此桶形图案添加代理,但没有成功。
我应该做什么?
是结束于
的行
...观看:
被截断了?缺少 true/false},
事实证明,将 SystemJS 与 Angular2 一起使用,您需要向 SystemJS 配置文件提供有关 "barrel" 含义的信息,否则 TypeScript 在编译您的项目时将不知道要查找什么。意思是,当你说:
import {component1} from "../../controls";
默认情况下,TypeScript 会查找“../../controls.js”,除非您告诉它不要查找。在我的主配置文件中,我为这些指定了一些映射,以便 SystemJS 知道在这些存储桶中查找什么:
packages: {
"src/path/path/controls": {
"main": "index"
},
"src/path/path/providers": {
"main": "index"
}
},
但是,我还需要将其添加到 karma-test-shim.js
文件中,以便 Karma 知道要查找什么。
将它添加到我的 karma-test-shim.js
文件后,它工作正常。
var packages = {
"base/src/path/path/controls": {
"main": "index"
},
"base/src/path/path/providers": {
"main": "index"
}
};
System.config(packages);
我们有一个使用桶导入模式的 Angular2 项目。我正在尝试为其编写单元测试,但是 Karma 似乎无法找到 barrel 语句引用的模块。
正在测试的文件导入使用:
import {provider1, provider2, provider3} from "../../../core/providers";
import {component1} from "../../controls";
并且 karma 输出以下警告:
13 05 2016 08:57:43.732:WARN [web-server]: 404: /base/src/app/core/providers
13 05 2016 08:57:43.732:WARN [web-server]: 404: /base/src/app/core/controls
现在加载我们的客户端脚本的 karma 配置文件部分:
// paths loaded via module imports
{ pattern: "src/app/**/*.js", included: false, watched: true },
// paths to support debugging with source maps in dev tools
{ pattern: "src/app/**/*.ts", included: false, watched: false },
这应该加载所有客户端脚本,但我认为由于我正在单元测试的文件使用桶导入,Karma 不知道如何处理它。我也不...
我曾尝试为此桶形图案添加代理,但没有成功。
我应该做什么?
是结束于
的行...观看:
被截断了?缺少 true/false},
事实证明,将 SystemJS 与 Angular2 一起使用,您需要向 SystemJS 配置文件提供有关 "barrel" 含义的信息,否则 TypeScript 在编译您的项目时将不知道要查找什么。意思是,当你说:
import {component1} from "../../controls";
默认情况下,TypeScript 会查找“../../controls.js”,除非您告诉它不要查找。在我的主配置文件中,我为这些指定了一些映射,以便 SystemJS 知道在这些存储桶中查找什么:
packages: {
"src/path/path/controls": {
"main": "index"
},
"src/path/path/providers": {
"main": "index"
}
},
但是,我还需要将其添加到 karma-test-shim.js
文件中,以便 Karma 知道要查找什么。
将它添加到我的 karma-test-shim.js
文件后,它工作正常。
var packages = {
"base/src/path/path/controls": {
"main": "index"
},
"base/src/path/path/providers": {
"main": "index"
}
};
System.config(packages);