Ich schreibe eine Angular2-Bibliothek mit Angular2 RC6.Angular2, Metadatenfehler beim Vorkompilieren des Feature-Moduls
Diese Bibliothek enthält ein einzelnes Modul:
import { Component, OnInit, NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
@Component({
selector: 'yeva',
template: '<div></div>'
})
export class YevaComponent {
constructor() { }
}
@NgModule({
imports: [CommonModule],
declarations: [YevaComponent],
providers: [],
exports: [YevaComponent]
})
export class YevaModule {
}
Wenn ich diesen Code kopieren und einfügen in einer Typoskript-Datei in einer vorhandenen Angular2 Anwendung, und versuchen, dieses Modul zu verwenden, um direkt, es funktioniert perfekt ...
Aber mein Ziel ist es, eine externe npm-Bibliothek zu erstellen.
Wenn ich mich bewege diesen exakt gleichen Code in einem eigenständigen Projekt:
https://github.com/ClementVidal/starter.yeva
(Dieses Projekt ist so konfiguriert, als Angular2 Bibliothek verwendet werden, wo es mit Typoskript, um kompiliert wird, um von meinem Client-Anwendung verbraucht werden)
ich erhalte die folgende Fehlermeldung:.
Unerwarteter Wert 'YevaModule' importe d durch das Modul 'AppModule'
Hier ist, wie ich mein Modul in beiden Fällen importieren:
@NgModule({
imports: [BrowserModule,YevaModule],
declarations: [AppComponent],
providers: [
FOUNDATION_PROVIDERS
],
bootstrap: [AppComponent]
})
export class AppModule {
}
Dieser Fehler kommen aus dem Angular Compiler:
var importedMeta = _this.getNgModuleMetadata(importedModuleType, false);
if (importedMeta === null) {
throw new Error("Unexpected " + _this._getTypeDescriptor(importedType) + " '" + stringify(importedType) + "' imported by the module '" + stringify(moduleType) + "'");
}
Es scheint, dass mein Modul , beim Importieren als vorkompiliertes Modul enthält keine Metadaten.
Ich habe versucht, dies durch einen Blick auf den kompilierten Code, um herauszufinden, aber ich habe nichts gefunden ...
Hier ist, wie diese Fehler zu reproduzieren:
mkdir test-metadata
cd test-metadata
git clone [email protected]:ClementVidal/starter.yeva.git
git clone [email protected]:ClementVidal/starter.themba.git
cd starter.yeva
npm install
sudo npm link
cd ../starter.themba
git checkout module-metadata
sudo npm link __TITLE__
npm install
npm run server
Dann stöbern zu http://localhost:8080/
Experimentiert schon jemand von Ihnen diese Art von Problem?
ich nicht, dass versuchen. Ich werde das testen! Vielen Dank – Clement