2017-01-30 5 views
1

私は、既存のプロジェクトでのテストのためのオフィシャルなangle2ガイドに従っています。角度2テストでカスタムパッケージをロードできない

私はアプリケーションを実行するときにうまく動作するカスタムライブラリ(downloadjs)を使用します。しかし、私は、テスト実行中の場合は、コンソールでエラーが発生します。

"__zone_symbol__zoneAwareStack": "Error: (SystemJS) XHR error (404 Not Found) loading node_modules/downloadjs/download.js\n\tError: XHR error (404 Not Found) loading node_modules/downloadjs/download.js\n\tError loading node_modules/downloadjs/download.js as \"downloadjs\" from app/utilities/file-handler.utility.js" 

私はツールを取得するためにnpm install downloadjsを使用しました。

ファイルhandler.utility.jsは以下の通りです:私は、同じフォルダ内のファイルdefs.spec.ts作成した

import {Injectable} from "@angular/core"; 
import downloadjs=require("downloadjs"); 
@Injectable() 
export class FileHandler{ 

    public static download(fileToDownload: any) { 
    downloadjs(fileToDownload, "filename.txt" ,"text/plain"); 
    } 
} 

declare module 'downloadjs'{ 
    function download(data:any, strFileName:string, strMimeType:string):void; 

     export = download; 
} 

をしてsystemjsへのパスを追加しました.config.js:

// other libraries 
     'rxjs':      'npm:rxjs', 
     'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js', 
     'downloadjs': 'npm:downloadjs/download.js' 

だから、これはnpm start.

とうまく動作します

しかし、ガイド状態として、これと1st.spec.tsを作成した後:

describe('1st tests',() => { 
    it('true is true',() => expect(true).toBe(true)); 
}); 

これは私が上に貼り付けられたエラーをスローします。あなたの時間をありがとう!

+0

npmで手作業でインストールしている場合は、ライブラリをグローバルにインストールしようとしましたか?npm install -g downloadjs – AntonJ

+0

試しましたが、同じエラーです。 – ForestG

答えて

1

問題はdefs.spec.tsの場所に関連していました。私たちは、既存の角度2のテンプレートを使用することに決めました。そして、それと統合した後で、今のテストが機能します。

+0

「角度2のテンプレート」とはどういう意味ですか?あなたは、角度2アプリでdownloadjsを使用したい人に役立つように作業コードを追加してください。 –

+0

プロジェクト全体を[Azimuth template](https://themeforest.net/item/azimuth-angular-2-admin-template/19182105)という新しいスケルトンに移動しました。今はAngular CLIを使ってプロジェクトを作成していますが、この問題はそれ以来発生していません(今はAngular 5を使用しています) – ForestG

関連する問題