簡體   English   中英

業力無法找到angular2“桶”進口

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM