2016-12-14 13 views
2

私はAngular2のdatepickerコンポーネントを複数のプロジェクトにリリースしたり組み込んだりするのと同じように作業したいと考えています。 angular-cliで構築された通常のAngular2プロジェクトと比較して、このためにプロジェクトを構成する最善の方法は何ですか?そのような仕事のための良いスタータープロジェクト/シードの例はありますか?コンポーネントライブラリは実際にはangle2アプリケーションそのものですか?Angular2コンポーネントライブラリを構成する最適な方法は何ですか?

私の最初の仮定は、私はちょうどこれが最善の方法は、私のようにある場合しかし、私は知らない日付ピッカーを構成する部品の階層を含む単一のモジュールを持っているangular-cli(例えばMyDatepickerModule)で標準プロジェクトを作成するということでした完全なアプリケーションが提供するすべてを必要としません。

ありがとうございました!

+0

あなたはまだangular-cliを使用して、必要のない部分を削除することができます。ウェブパッケージのセットアップについての騒ぎではなく、すぐにコーディングに潜入する能力をCLIが提供するのはかなり良いことです。 –

+0

これらの複数のプロジェクトにコードをどのように配布する予定ですか? via npm? – snorkpete

答えて

2

AoTとの互換性を念頭に置いてライブラリを公開します。

これは、ngcコンパイラを使用してソースをコンパイルすることを意味します。配布パッケージでは、JSソース、元のhtml/cssファイル、d.ts型ファイル、ngcのmetadata.jsonファイルを公開しました。

JSソースをes2015モジュールで公開することをお勧めします。これにより、ライブラリツリーが揺れるようになります。私はes5 JSをターゲットにしますが、es2015モジュールを使用します。 TypeScriptでは、モジュールをES2015に設定し、tsconfig.jsonでes5を対象にすることで、このハイブリッドモードを使用できます。

これらのファイルを公開すると、ライブラリAoTとツリーが揺れ動くようになります。

これは、完全なアプリケーションにライブラリをコンパイルするために必要なアプリケーションです。

これは、コンシューマがビルド環境(タイピング+ TSコンパイラバージョン)を複製する必要があるため、TypeScriptをパッケージにパブリッシュすることはお勧めしません。

また、JiT互換のumdバンドルをインラインテンプレートとCSSで公開することもできます。これは、コンパイルが少し遅いので、開発中にAoTを実用的ではない可能性があるため、参考になる可能性があります。 umdバンドルは、JiTベースの開発環境でライブラリを使用することを可能にします。生産のためにはAoTバージョンを間違いなく使用しなければなりません。

CLIは、完全なアプリケーションを構築するためのツールであるため、CLIはライブラリの公開には適していません。彼らは将来的にはより良い図書館をサポートするかもしれない。

+0

偉大な応答ありがとう、私はあなたが述べたことを読み上げる必要がありますが、それは概念レベルで意味をなさない。 –

1

チェックアウトhttps://github.com/angular/material2。進行中の作業で、Material Designを適用するAngular2のコントロールとテーマのライブラリであり、独自のコントロールライブラリを構築するための優れた情報源です。

+0

ありがとう! –

関連する問題