0

私は RequireJS をうまく実装し、r.js を介してすべての JS ファイル アプリを 1 つのファイルに最適化する Grunt ベースのビルド プロセスもうまく機能しています。すべてのアプリ ファイルが 1 つの大きな JS ファイルに連結され、効率的な運用展開が可能になります。今、私は次の要件を持っています: ビルド プロセスで最適化されたファイルに読み込まれない (ファイルを含まない) が、必要に応じて必要になる、requirejs 用のプラグインを作成する必要があります:持ってる:

var myObj = require("myplugIn!jsFile");

したがって、最終的にこの行が実行されると、次の 2 つのオプションで実行されます。

  1. ビルド プロセスで、ファイルが最適化されたファイルに含まれない
  2. アプリケーションが実行されていると、オンデマンドでファイルが要求されます。

次のプラグインを作成しましたが、機能しません。

define(function () {
"use strict";
return {
    load : function (name, req, onload, config) {
        // we go inside here we are running the application not in build process
        if (!config.isBuild) {
            req([name], function () {
                    onload(arguments[0]);
                });                
        } 
    }
};
});

私がここに欠けているもの。

4

2 に答える 2

2

ビルド構成では、バンドルしたくないファイルを除外できます。必要に応じてオンデマンドでロードされます。次のようなこともできます。

define(function (){
    // module code...

    if (condition){
        require(['mymodule'], function () {
            // execute when mymodule has loaded.
        });
    }

}):

この方法mymoduleは、条件が満たされた場合にのみロードされます。そして一度だけ、他の場所で同じモジュールの依存関係を使用すると、ロードされたモジュールが返されます。

于 2013-06-12T18:36:39.590 に答える