2012-11-13 8 views
5

現在のプロジェクト環境(開発や生産など)に応じて異なるファイルを読み込む機能はありますか?私は何かを意味します。それは、縮小されたファイルや完全なファイルを透過的にロードするのに役立ちます。私はマルチバージョンの読み込みについて読みましたが、マルチバージョンとはファイルのバージョンを指定する必要があることを意味します。
たとえば、モジュールにmodule.jsファイルがあります。このファイルでは、私はjQueryのをロードする必要があります。RequireJS:環境に応じて異なるファイルをロード

require(['jquery]); 

しかし、私は縮小さとjQueryのフルバージョンきたと私は別のファイルをロードします。私はこのような設定について考えています:

require.config({ 
     paths: { 
      'jquery' : function(){ 
       if(MODE == 'DEV'){ 
        return 'jquery'; 
       }else{ 
        return 'jquery.min' 
       } 
      } 
     } 
    }); 

また、多分何か類似しています。

答えて

1

誰かが、まだそれを行う方法を知りたい場合は、次の

require.config({ 
    paths: { 
     'jquery' : (function(){ 
      if(MODE == 'DEV'){ 
       return 'jquery'; 
      }else{ 
       return 'jquery.min' 
      } 
     })() 
    } 
}); 

この関数は自己匿名関数を呼び出すことです。定義場所ですぐに呼び出されます。

2

the r.js optimizerをお使いの場合は、このプロセスをお手伝いできます。 scriptsフォルダには、すべてのモジュール、ライブラリ、およびその他のコードを開発目的で圧縮しないでください。準備は、展開build.jsを作成し、さまざまなオプションを設定するとき、私はしばしば

scripts/ 
    lib/ 
    modules/ 

このようなものを持っています。このオプション can be found in this example configurationのそれぞれに

({ 
    baseUrl: '../scripts', 
    dir: '../scripts.min', 

    paths: { 
     'jquery': 'lib/jquery' 
    }, 

    removeCombined: true, 

    optimize: 'uglify', 
    preserveLicenseComments: false, 
    uglify: { 
     max_line_length: 3500, 
     no_copyright: true 
    }, 

    modules: [ 
     { 
      name: 'module1' 
     }, 
     { 
      name: 'module2', 
      exclude: ['jquery'] 
     } 
    ] 
}) 

詳細を私はdirに注意を引くだろうし、あなたのスクリプトが終了する場所removeCombined

dirは明らかである:私は私が使用している同様の設定の例をあげますアップ。私は、接尾辞.minまたは類似のものを使ってスクリプトに隣接するフォルダを作成する傾向があります。次に、あなたが生産に行く準備ができたら、単にあなたのデフォルトでbaseUrl

scripts.minから
require.config({ 
    baseUrl: '/scripts.min' // Now the site will load scripts from the optimised folder 

    // Other options 
}) 

設定を必要とし、r.jsにかかわらず、彼らはすでに別のjsに統合されているかどうかの上のすべてのスクリプトをコピーしますを変更ファイルかどうか。 removeCombinedtrueに設定すると、scripts.minフォルダには本番用の必要なファイルのみが含まれます。

関連する問題