So importieren Sie ein npm-Paket in ein angular2 Komponente?

Ich versuche zu lernen, die Seile von ng2 und die depedency injection system is killing me.

Bin ich mit dem ng quickstart aus:
https://github.com/angular/quickstart/blob/master/README.md

Ich versuche zu importieren, dieses Paket in der app: https://www.npmjs.com/package/arpad. Ich installiert das Paket über npm update, mein Paket.json Abhängigkeiten wie folgt Aussehen:

"dependencies": {
  "angular2": "2.0.0-beta.9",
  "systemjs": "0.19.24",
  "es6-promise": "^3.0.2",
  "es6-shim": "^0.35.0",
  "reflect-metadata": "0.1.2",
  "rxjs": "5.0.0-beta.2",
  "zone.js": "0.5.15",
  "arpad":"^0.1.2" <----- the package i'm trying to import
}

Dies ist, wie das Paket exportiert seine code:

module.exports = ELO;

Habe ich eine Komponente importieren Sie das Modul wie dieses:

import {ELO} from 'node_modules/arpad/index.js';

Dies ist, wie systemJS konfiguriert ist, in der Anwendung index.html:

  <script>
  System.config({
    packages: {        
      app: {
        format: 'register',
        defaultExtension: 'js'
      }
    },
    map:{'arpad':'node_modules/arpad'} <---- here 
  });
  System.import('node_modules/arpad/index.js'); <--- and here for good measure
  System.import('app/main')
        .then(null, console.error.bind(console));
</script>

Nun, es sieht viel wie ich ' m shooting in the dark, und das ist genau das, was die Fehlermeldungen in der Konsole-Anwendung hatte mich zu tun. Wenn ich versuche, das Modul in der Komponente wie folgt:

public elo = ELO;
constructor(){
    this.score = this.elo.expectedScore(200, 1000);
    ---- there is more to the component but this is the part where it breaks
}

Bekomme ich folgende Meldung:

"ORIGINAL EXCEPTION: TypeError: this.elo is undefined"

Also die Frage in einen breiteren Anwendungsbereich ist:

Wie kann ich eine bestimmte npm-Paket (das ist nicht bereits ein angular Modul) in einer Komponente oder eines Dienstes mit systemJS(oder Webpack oder Browserify) als Modul loader in den ng2 quickstart?

Schreibe einen Kommentar