web-dev-qa-db-ja.com

大きな分割Angularコードベースをライブラリに

私はAngular 7を使用して、潜在的に大きなWebアプリケーションを書いています。ここで、設計の問題に遭遇しました。私のこれまでのangularアプリケーションは比較的小さいので、コード全体を1つのプロジェクトに保持することは問題ありませんでした(遅延読み込みのモジュールに分割)。ただし、アプリケーションのサイズが大きくなると、プロジェクトをナビゲートしにくくなるため、すべてのコードを同じプロジェクトに保持するのが難しくなります。

私の考えは、アプリケーションを機能ごとに複数のangularライブラリに分割できるということでした。これにより、次の質問が生じます。そのようなアプローチで実際にいくつかの利点を得るか、依存関係の管理でオーバーヘッドを作成するだけですか?すべての依存関係をリンクする必要があるため、開発が難しくなりますか?このオプションが実行可能な場合、コードを複数のライブラリに分割するための良い方法は何ですか?大きなangularアプリに関する記事を探しましたが、私の解決策で何も見つかりませんでした-すべてが1つのプロジェクトでした-そのような問題に関する良い記事はありますか?

2
Miha Jamsek

これを行う最も簡単な方法(まだ行っていない場合)は、Angularコードをモジュールに分割することです。

これにより、各モジュールをクリーンアップして、他のモジュールに依存しないようにしたり、別のモジュールの上にあると想定される場合にのみ依存したりできるようになります。したがって、20以上のコンポーネントとサービスしかないプロジェクトでも、そうすることは間違いなく良い考えです。

Gitを使用している場合は、gitのサブモジュール機能を利用して、プロジェクト間でモジュールを共有できます。 (ただし、gitのサブモジュールはいくつかの不快感を与える可能性があることに注意してください。私はそれらとTortoiseGitでいくつかの問題を抱えていますが、コミットは失われていませんが、まだです。)

すでにモジュールを使用していて、プロジェクトを分割するのに十分ではない場合、次のステップは、npmを使用してプロジェクトにインストールするパッケージを作成することです(またはプロジェクトの.jsonファイルを編集してnode_modulesにコピーすることにより、手動で同じことを行います)。

Angularは、コードを分割するこれらの2つの方法の間に何かがあるとは思いません。「ライブラリ」はパッケージでなければならないというのは、設計上の決定のようです。そしてそれは公平なようです。 Angularの一般的なアーキテクチャを考慮した選択。

0
Bent