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?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich einige Kommentare hier:
Konfigurieren Sie SystemJS diese Weise für das Modul:
Brauchen Sie nicht zu importieren
index.js
- Datei (sieheSystem.import('node_modules/arpad/index.js');
) vor dem importieren der Applikation (Import derapp/main
Modul).Müssen Sie importieren Sie Ihre
elo
Objekt so:Dann sollten Sie in der Lage sein zu verwenden Ihre module so:
Hier ist ein plunkr beschreiben: https://plnkr.co/edit/K6bx97igIHpcPZqjQkkb?p=preview.
import Elo from 'arpad';
?