requirejsのオプティマイザーを使用して、ファイルをグループ化してロードする

StackOverflow https://stackoverflow.com/questions/5356631

  •  27-10-2019
  •  | 
  •  

質問

私たちはプロジェクトでrequirejsを使用し始めたばかりで、それを愛しています。現在、サイトが実行されている多くのjQueryプラグインを管理するためにそれを使用しているので、その潜在的な表面をかろうじて傷つけています...しかし、時間の制約のためにこれは待たなければなりません。

私はそれを望んでいるように、オプティマイザーのプレイを取得するいくつかの問題を抱えています、私はあなたがこれを行うことさえ可能かどうかを教えてくれるのだろうかと思います。私のディレクトリ構造:

> /common/
> /common/*.js - common plugins used on most pages on the site
> /infrequent/
> /infrequent/infrequentModule.js
> /infrequent/ckeditor
> /infrequent/ckeditor/1000s.js
> /require.js
> /jquery.js
> /main.js - this file contains all scripts in common. It looks at the page and call the necessary plugins.

最適化/希望の構築:

  • main.jsには、すべての一般的なスクリプトが含まれます。ほとんどのページでは、このスクリプトはロードされている唯一のスクリプトです(require.jsを除く)
  • main.jsは、そのasyncをロードするまれなプラグイン/モジュールが必要であることがわかった場合、ページを見ます。したがって、まれなページでは、require.js、main.js、infrequentmodule.jsをロードできます。

ビルドスクリプトでさまざまな方法を試して、希望する結果を得るためにファイルを除外して含めるように試しましたが、役に立たないことを試みました。誰かがこれが実際に可能であるかどうかを知っているか、それを知っていますか?

役に立ちましたか?

解決

わかりました、だから私はrequire.jsのためにGoogleグループにいくつかの素晴らしい答えを得ました - http://groups.google.com/group/requirejs/browse_thread/thread/359b02473f4e707

以下は、私が他の誰かを助けることを願っています。

こんにちは、私は現在私のプロジェクトの1つでこれを行っています、ここに私のbuild.jsがあります:

paths: { 
                //load libs from cdn 
                "jqueryUI": "jqueryUI", //temp static file for build 
                "swfobject": "swfobject", //temp static file for build 
                "Templates": "../Templates/Settings" 
        }, 
modules: [{ 
            name: "appName", 
                        excludeShallow: ["jqueryUI", "swfobject", "Modules/ 
module.preferences"] 
        } 

次に、私のモジュールの1つで、必要なときに実行するモジュール/モジュールの呼び出しが必要です。

function loadPreferences(){ 
 require(["Modules/module.preferences"],function(){ 
                     //Execute some init code after the module has 
loaded 
         }) 
 } 
} 

これにより、私が必要としている場所で説明したものを実現し、ページのロードにメインロードしてから、モジュール。Preferencesが必要に応じてロードをロードします。それが役立つことを願っています、ジェフ。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top