angular2のnpmモジュールの書き方について頭を下げることはできません。
2つのチュートリアル(One、Two)が見つかりましたが、npmパッケージとしてangular2モジュール(@NgModule
)を実装する方法はありません。Angular2 npmモジュールの書き方 - Angular2 RC 6
私が理解していないことは、正確にはBrowserModule
のようなモジュールを注入する必要があるときですか?それを私のモジュールに注入する必要があるのでしょうか、それとも指示を注入するだけで十分ですか?これまで
私のプラグイン:
- https://github.com/yves-s/ng2-flexbox-grid/tree/develop
- https://www.npmjs.com/package/ng2-flexbox-grid
現在は@ btmortonのangular2-grid
のRC6へのコピーと更新だが、私はそれを動作させることはできません。
UPDATE:
これは私のモジュールの現在の状態ng2-flexbox-grid.ts
export * from './src/directives';
export * from './src/components';
export * from './src/interfaces';
import {BrowserModule} from '@angular/platform-browser';
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {NgGrid, NgGridItem} from './src/directives';
const mapValuesToArray = (obj) => Object.keys(obj).map(key => obj[key]);
// const directives = mapValuesToArray(directiveItems);
export default {
directives: [NgGrid, NgGridItem]
}
@NgModule({
declarations: [],
imports: [
BrowserModule,
CommonModule
],
exports: [NgGrid, NgGridItem]
})
export class Ng2FlexboxGridModule {}
UPDATEである - 私はそれを持って来ることができる@Clintの助けを借りて解決
ベビーホーム。
おそらく最大の問題は、私が正確に@NgModule
がどのように動作するのか分からなかったことでした。そして、私が慎重に読んだら助けてくれると確信しています。@NgModule
docs
重要なのは、モジュールディレクティブを宣言してエクスポートすることです。これで、エクスポートされたディレクティブを使用するにはFlexboxGridModule
をインポートするだけです。
輸出:
import {BrowserModule} from '@angular/platform-browser';
import {NgModule} from '@angular/core';
import {NgGrid, NgGridItem} from './src/directives';
@NgModule({
imports: [BrowserModule],
declarations: [NgGrid, NgGridItem],
exports: [NgGrid, NgGridItem]
})
export class FlexboxGridModule {}
インポート:あなたは、あなたのプロジェクトにNgModuleを持っている必要があります
import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {AppComponent} from './app.component';
import {FlexboxGridModule} from "ng2-flexbox-grid";
@NgModule({
imports: [
BrowserModule,
FlexboxGridModule
],
declarations: [AppComponent],
bootstrap: [AppComponent]
})
export class AppModule {}
質問体は解決の場ではありません。ソリューションを回答として提供し、それを最善の答えとすることができます。 – Clint