[英]Karma cannot find angular2 “barrel” import
我們有一個使用桶導入模式的Angular2項目。 我正在嘗試為此編寫單元測試,但是Karma似乎無法找到bucket語句所引用的模塊。
要測試的文件使用以下命令導入:
import {provider1, provider2, provider3} from "../../../core/providers";
import {component1} from "../../controls";
業力輸出以下警告:
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不知道該如何處理。 我也不...
我試圖為該桶形樣式添加代理,但這沒有用。
我該怎么辦?
事實證明,將SystemJS與Angular2結合使用時,您需要向SystemJS配置文件提供有關“桶”的含義的信息,否則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);
這行是結束
...觀看:
截斷? 缺少true / false},
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.