少なくともAngularに変更を加えることなく、すべてのポイントを簡単に達成できると思います。
- コントローラー、ディレクティブ、フィルターなどを独自のファイルに分割できる。
これはもちろん基本的な Angular で実行できます。コントローラー/サービスに必要な数のスクリプト タグを含めることができるからです。もちろん、まったくスケーラブルではないため、RequireJS などの AMD モジュールを使用するのが最適なオプションです。これは、この種の構成を持つシードの 1 つです: https://github.com/elsom25/angular-requirejs-html5boilerplate-seed
- ブラウザにすべてを読み込ませるのではなく、必要に応じてこれらのファイルを読み込むことができます。
コメントでpkozlowskiが示唆したように、問題の説明を含むエントリが既にあります。私もこれを解決するために取り組んでおり、実際にいくつかの結果が得られたことがわかります。RequireJSとルート構成の解決パラメーターを使用して、オンデマンドでコントローラー、テンプレート、およびディレクティブをロードする実際の例があります。
- 共通のクロス プロジェクト コンポーネント (共通のディレクティブ、フィルター、またはサービスなど) を持つことができる
前のポイントを解決したら、RequireJs モジュールを使用して簡単に達成できます。
agularjs-lazy-seed プロジェクトを開始するのが良い考えかどうか疑問に思っていましたか? それに対する需要はありますか?アプリケーションに含めたいビューを含む views.json ファイル (理想的には json で応答するサービス) があるとします。
{
"views" : {
....
"account" : {
"path" : "/account" // route path
"name" : "Account", // view name
"partial" : "views/account/account.html", // partial file
"controller" : "account/main" // RequireJS module
"directives" : [ "directives/version", "directives/menu" ] // directives used in the view
}
....
}
}
このようにして、次のことができます。
- ビューを別々に開発し、この json ブートストラップに基づいてアプリケーションを構築します
- いくつかの共通のディレクティブとコンポーネントがあります
- ログイン後のブートストラップ時に、ユーザーが表示できるビューをフィルタリングできます
- ngView 内のすべてがオンデマンドでロードされます
もちろん、この追加作業をすべて実行する意味があるように、アプリケーションは非常に大きくする必要があります;)