4

ここで説明されているように JavaScript を整理しました: https://stackoverflow.com/a/10816983/83897

複数の異なるページを持つ JavaScript を多用する ASP.NET アプリケーションがあります (単一ページのアプリケーションではありません)。各ページには異なる依存関係があるため、ページごとの .js ファイル (page1.js、page2.js など) があります。それぞれに require() 呼び出しがあり、依存関係を宣言します。

require(['jquery', 'page1Module'], function($, module){
    // page1 specific stuff here
});

これはうまくいきます。私が疑問に思っているのは、RequireJS ビルド プロセスがどのように機能するかということです。ページごとの「ビルド」.js ファイル (page1-build.js、page2-build.js など) が必要だと思いますか? 利用できる既存のソフトウェアはありますか?

プロセスは次のようになります。

  1. 特定のスクリプトのすべての依存関係を、一時ディレクトリ内の 1 つの build.js ファイルにコンパイルします。
  2. コンパイルされたファイルの MD5 フィンガープリントを計算します。
  3. そのフィンガープリントを public/assets 内の同等のファイルと比較します。
  4. インメモリ RequireJS マニフェストを作成し、各モジュールをコンパイル済みファイルにマッピングします。このマニフェストをコンパイル済みファイルに追加します。
  5. どういうわけか、本番環境でビルド ファイルを使用するようにします。

編集:少し考えた後、node + r.js を使用した RequireJS の最適化は、アセットの構築が他のサードパーティ ライブラリに依存する、より大きなアセット構築プロセスの一部になると考えています。RequireJS 最適化は、特定の JavaScript 依存関係 (つまり、見つかった依存関係を含む各ページの JavaScript ファイル) に対して単純に使用され、おそらく XML 構成で指定されます。

4

1 に答える 1

3

ビルド プロファイルでモジュールを指定することにより、複数の最適化されたファイルを作成できます。

{
   modules: [
     {
         name: "main"
     },
     {
        name: "page1",
        include: ["dep1", "shim2"],
        exclude: ["main"]
     }]
}

各エントリは、最適化されたファイルを生成し.jsます。

詳細はこちら:マルチページ プロジェクトで RequireJS ビルド プロファイル + r.js を使用する方法

于 2012-08-24T18:23:09.697 に答える