Angular2 RC6を使用してAngular2ライブラリを作成しています。Angular2、フィーチャモジュールをプレコンパイルする際のメタデータエラー
このライブラリに単一のモジュールが含まれています。
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 {
}
私は既存のAngular2アプリケーションでtypescriptファイルにこのコードを貼り付け、直接このモジュールを使用しようとコピーした場合、それは完璧に動作...
しかし私の目標は、外部のnpmライブラリを構築することです。
私は、スタンドアロンのプロジェクトでこれと同じコードを移動した場合:
https://github.com/ClementVidal/starter.yeva
(このプロジェクトは、それがために、活字体を使用してコンパイルさAngular2ライブラリとして使用されるように構成されています私のクライアントアプリケーションによって消費される)
I取得するには、次のエラー:。
予期しない値 'YevaModule' importeモジュールによってdがここにAppModule」
は、私は両方のケースで私のモジュールをインポートする方法です:
@NgModule({
imports: [BrowserModule,YevaModule],
declarations: [AppComponent],
providers: [
FOUNDATION_PROVIDERS
],
bootstrap: [AppComponent]
})
export class AppModule {
}
このエラーは角コンパイラから来る:
var importedMeta = _this.getNgModuleMetadata(importedModuleType, false);
if (importedMeta === null) {
throw new Error("Unexpected " + _this._getTypeDescriptor(importedType) + " '" + stringify(importedType) + "' imported by the module '" + stringify(moduleType) + "'");
}
それは私のモジュールと思われます、プリコンパイル済みモジュールとしてインポートした場合、メタデータは含まれていません。
ここ
は、このエラーを再現する方法です...私はコンパイルされたコードを見て、これを理解しようとしましたが、私は何も見つかりませんでした:
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
このタイプの問題は既に実験していますか?
として、私はそれを試していないことを提出します。私はそれをテストします!ありがとう – Clement