2017-02-02 5 views
1

Ich folge dies (https://www.thepolyglotdeveloper.com/2016/01/include-external-javascript-libraries-in-an-angular-2-typescript-project/), um externe Bibliothek zu importieren. Aber ich kann es nicht auf die gleiche Weise nachahmen. Ich habe den folgenden Fehler erhalten,Wie importiere ich eine externe Bibliothek in angular2?

GET http://127.0.0.1:8080/src/rxjs/Subject 404 (nicht gefunden).

Inside src, Ordner, habe ich zwei Ordner, app und js und zwei Dateien, index.html und tsconfig.json.

App.ts

declare var jsSHA: any; 

@Component({ 
    selector: "my-app", 
    templateUrl: "app/app.html", 
    directives: [] 
}) 

class App { 

    shaObj: any; 
    hash: String; 

    constructor() { 
     this.shaObj = new jsSHA("SHA-512", "TEXT"); 
     this.shaObj.update("This is a test"); 
     this.hash = this.shaObj.getHash("HEX"); 
    } 

} 

bootstrap(App, []); 

app.html

<h1>SHA-512 Hash</h1> 

<p>String: This is a test</p> 
<p>HEX: {{hash}}</p> 

Index.HTML

<html> 
    <head> 
     <title>Angular 2 QuickStart</title> 
     <script src="../node_modules/angular2/bundles/angular2-polyfills.js"></script> 
     <script src="../node_modules/systemjs/dist/system.src.js"></script> 
     <script src="../node_modules/rxjs/bundles/Rx.js"></script> 
     <script src="../node_modules/angular2/bundles/angular2.dev.js"></script> 
     <script src="js/sha.js"></script> 
     <script> 
      System.config({ 
       packages: {'app': {defaultExtension: 'js'}} 
      }); 
      System.import('app/app'); 
     </script> 
    </head> 
    <body> 
     <my-app>Loading...</my-app> 
    </body> 
</html> 

system.config.js

(function (global) { 
    System.config({ 
     paths: { 
      // paths serve as alias 
      'npm:': 'node_modules/' 
     }, 
     // map tells the System loader where to look for things 
     map: { 
      // our app is within the app folder 
      app: 'app', 
      // angular bundles 
      '@angular/core': 'npm:@angular/core/bundles/core.umd.js', 
      '@angular/common': 'npm:@angular/common/bundles/common.umd.js', 
      '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js', 
      '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js', 
      '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js', 
      '@angular/http': 'npm:@angular/http/bundles/http.umd.js', 
      '@angular/router': 'npm:@angular/router/bundles/router.umd.js', 
      '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js', 
      // other libraries 
      'rxjs': 'npm:rxjs', 
      'angular2-in-memory-web-api': 'npm:angular2-in-memory-web-api', 
      'underscore': 'node_modules/underscore/underscore.js' 
     }, 
     // packages tells the System loader how to load when no filename and/or no extension 
     packages: { 
      app: { 
       main: './app.js', 
       defaultExtension: 'js' 
      }, 
      rxjs: { 
       defaultExtension: 'js' 
      } 
     } 
    }); 
})(this); 

Wenn jemand eine Ahnung von diesem Problem hat, bitte geben Sie mir einen Rat.

+0

Sieht aus wie irgendwo Ihre 'ts' Dateien importieren Sie' Rxjs/Subject', aber es ist nicht ordnungsgemäß über SystemJs konfiguriert. – Shawn

+0

Was meinst du mit importieren? –

+0

Nein, ich exportiere RXJs nirgends. Die app.ts und app.html sind alle Dateien, die ich in dieses Projekt aufgenommen habe. –

Antwort

0

Wenn Ihre sha.js Ihre eigene schriftliche Modul ist, sollten Sie sha.d.ts Datei hinzufügen, um es in der App zu importieren: guide fo this

Wenn es eine externe Bibliothek ist, installieren Sie es als reguläres npm Paket:

npm install —save sha 
Verwandte Themen