Angular Library について

この記事を書いたチーム:frontier

Angular Library とは

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

Angular ライブラリは、単独では実行できないという点でアプリケーションとは異なる Angularプロジェクトで、 ライブラリをインポートしてアプリケーションで使用する必要がある。Angular CLI v6 から提供された機能で通常の application 作成と異なり library を作ることができる

  • Angular は Angular CLI の Multiple Projects を利用するとひとつの repository 内で複数の application を管理できるが library を作ることによりこれらの複数 application で共通に使えるコンポーネント群を作ることができる

  • また library をパッケージングすることで npm として公開しなくても別の Angular repository で同じように共通コンポーネントととしても使用可能

 

共通コンポーネント作成

application を作成

  • sampleproという名前で Angular repository を作成する


library を作成

  • my-lib という名前で library project を作成する shell $ yarn ng generate library my-lib

  • sampleproの中に projects/my-lib/ というディレクトリが作られたのが確認できる

library をビルド

  • library をビルドする

    • --watchオプションを付けると変更を監視するようになる(Angular CLI v6.2 以上)

    • 1 回だけビルドしたい場合は不要

library project でコンポーネントを作成

  • ButtonComponent を作成する

    • repository 内に project が複数あるので --project で対象を指定する必要があ

  • ButtonComponent の公開

    • 下記のように export する


library を同一 repository の application で使う

  • my-lib で作った ButtonComponent を samplepro で使う

    • 同じ repository 内にある application では library のビルドだけですぐに使うことができる


  • コンポーネントを表示する

    • あとはいつもどおりタグを記述するだけでコンポーネントの表示ができる


別の repository で使う

  • library のパッケージングが必要なので my-lib のビルド成果物があるディレクトリで下記コマンドを実行


  • my-lib-v0.0.1.tgz ができる

  • もし名前を変えたければ $ yarn pack --filename my-lib.tgz のようにする

  • パッケージングした library を任意の application でインストールする

  • 使い方は同一 repository 内のときと同様

 

まとめ

Angular CLI を使って、 library が簡単に作成できた。

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス