1. 上記 (または同様のもの) を達成するように Durandal を構成することは可能ですか?
はい、あなたの心が望むフォルダ構造を持つことができます。Durandal はアプリケーションにフォルダー構造を課すことはありませんが、完全にオーバーライド可能なデフォルトの規則があります。
Durandalsルーターを使用している場合は、モジュールを見つけるように構成する方法を調べる必要があります。これを行うには多くの方法がありますが、私はrouter.autoConvertRouteToModuleId
.
ルーター プラグインを使用していない場合は、モジュールの URI を自分で管理する必要があります。これは、requirejs の規則に従い、この規則を durandals構成モジュールと共に使用することによって行われます。
また、 viewlocators規則をオーバーライドすることで、モジュールにバインドするビューを見つける方法をオーバーライドできます。Durandal は、箱から出してすぐに小さなアプリケーションを構築する非常に単純な方法を提供しますが、より大きなアプリケーションを構築する必要がある場合は、独自の規則を作成することをお勧めします。
2. デフォルトのデュランダルの慣習から離れることは賢明ですか? 3. その際の潜在的な問題は何ですか?
したがって、モジュールを検出する方法と、完全にオーバーライド可能なビューを検出する方法の規則があります。これらをオーバーライドして、自分に最適な方法を選択することをお勧めします。しかし、上記のようにスクリプトフォルダー内に durandal を配置することについては、良い考えだとは思いません。
これをお勧めしない理由は、scripts フォルダーが、AMD 以外のモジュールであるすべてのサードパーティ スクリプトの場所であると考えているためです。これは、Durandal には、すべての html/css/js (amd) ファイルを 1 つのファイルに縮小/圧縮/醜化する optimizer.exeも付属しているためです。
アプリケーション全体を app フォルダーの下に保持し、durandal フォルダーを app フォルダー内に保持する場合、オプティマイザーは app/durandal/amd フォルダー内に存在するため機能します。そのため、実行すると、2 つのディレクトリをアプリ フォルダーに移動し、すべてのサブフォルダーをスキャンしてapp.build.js requirejs 最適化ファイルを作成し、アプリケーション全体を 1 つのファイルに圧縮します。
これにより、プロジェクトに新しいファイルを追加するたびに app.build.js ファイルを手作業で編集する必要がなくなります。確かに..これを行うことができる他のツールもあります..しかし、それらのAPIとそれらを構成する方法を学ぶのに時間を費やす必要があります. うなり声のようなものを学ぶことに時間を割きたくない場合は、このオプティマイザーが最適です。個人的には、何かをダブルクリックするだけでアプリケーション全体を構築できる機能が気に入っています。
amd 以外のすべてのサードパーティ ライブラリを別のスクリプト フォルダに配置することについては、MVC のバンドルを使用するように、それらを個別に圧縮することを検討します。これらを個別にバンドルする理由は、これらのファイルが頻繁に変更されることはなく、それらを個別の js ファイルにバンドルすると、ブラウザによって個別にキャッシュされる可能性があるためです。一方、スパが変更されている場合は、おそらくそうなるでしょう..圧縮されたアプリケーションを再ダウンロードするだけで済むように、ブラウザーにそれを個別にキャッシュさせたいとします。