2017-01-30 1 views
1

Ich befolge die offizielle angular2 Anleitung zum Testen eines bestehenden Projekts.Angular 2 Test kann das benutzerdefinierte Paket nicht laden

Ich benutze eine benutzerdefinierte Bibliothek, downloadjs die funktioniert gut, wenn ich die Anwendung ausführen. Aber ich habe einen Fehler in der Konsole bei Testlauf:

"__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" 

Ich benutzen npm install downloadjs das Werkzeug zu bekommen.

Datei-handler.utility.js ist folgende:

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

     export = download; 
} 

und hinzugefügt, um den Pfad zu systemjs:

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

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

ich eine defs.spec.ts Datei im selben Ordner erstellt haben .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' 

So läuft das nur mit npm start.

fein

Aber wie die Führungszustände nach 1st.spec.ts mit dieser zu schaffen:

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

dies führt den Fehler, den ich auf der Oberseite geklebt. Vielen Dank für Ihre Zeit!

+0

Wenn Sie manuell mit npm installieren, haben Sie versucht, die Bibliothek global zu installieren: npm install -g downloadjs – AntonJ

+0

versuchte es, der gleiche Fehler. – ForestG

Antwort

1

Das Problem wurde mit dem Speicherort defs.spec.ts in Verbindung gebracht. Wir haben uns dafür entschieden, ein vorhandenes eckiges 2-Template zu verwenden, und nach der Integration funktioniert es jetzt.

+0

Kannst du mir sagen, was meinst du mit "angular 2 template"? Willst du bitte Arbeitscode hinzufügen, so wird es hilfreich sein, wer downloadjs in angular 2 App verwenden möchte. –

+0

haben wir das gesamte Projekt in ein neues Skelett namens [Azimuth-Vorlage] (https://themeforest.net/item/azimuth-angular-2-admin-template/19182105) verschoben. Heute verwende ich Angular CLI, um Projekte zu erstellen, und dieses Problem ist seither nicht mehr aufgetreten (wir verwenden jetzt Angular 5) – ForestG

Verwandte Themen