2

私たちのチームは、フロントエンドが Spring MVC Java バックエンドを使用する Angular.js シングル ページ アプリケーションであるサーバー クライアント アプリケーションを作成しています。バックエンドは、ブラウザ側で使用されるアプリケーション ファイルと REST エンドポイントを提供します。アプリケーションのメイン ビルド システムとして Maven を使用しています。

最後にrequire.jsとr.jsを利用してアプリを縮小し、クライアント側の依存関係管理も使用しています。現在、bower を使用して必要な Javascript ライブラリをダウンロードしていますが、クライアントの依存関係を src/main/webapp にダウンロードするのは適切ではありません。これはソース フォルダーだからです。ただし、クライアント ファイルで何かが変更されるたびにフロントエンド モジュール全体を再構築するのを避けるには、これが唯一の賢明な方法のように思えます。このようにして Web サーバーを起動すると、再起動せずに変更が自動的に取得されますが、前述のように、これは Maven のフォルダー レイアウトに適合しません。

Maven 指向のビルドと依存関係管理において、より良い選択と思われる Webjar を試しています。サーブレット 3.0 コンテナーでは、webjar リソースがサーバー コンテナー パスで自動的に提供されるため、それらの使用と管理は非常に簡単です。また、require.js 構成を作成して、webjar に含まれるライブラリを参照することもできます。これは、それらが静的ファイルである場合と同じように Web サーバー パス上にあるためです。提供は、クライアント アプリケーションの観点から透過的に行われます。

私の唯一の問題は、ソース ファイルが jar ファイルにあり、r.js がそれらにアクセスできないため、このレイアウトで r.js の縮小を実現する方法がわからないことです。また、require.js 構成は、ビルド時に存在しないランタイム サーバー パスを参照します。

webjars が Require.js + Play フレームワークと統合されていることがわかりますが、私たちの場合、単純な Spring MVC だけで Play を使用していません。クライアントの依存関係を処理する Webjar の方法が好きなので、このケースを処理する方法があることを本当に願っています。

4

1 に答える 1

4

ビルド プロセスにはアセット コンパイラ/パイプラインが必要です。おそらく多くのオプションがありますが、私が知っているのは wro4j です: http://alexo.github.io/wro4j/

于 2014-05-21T18:12:44.247 に答える