1

デフォルトのスキームにモジュール名のサブディレクトリを含めることを許可するように、require.js でいくつかのオプションを設定することは可能ですか?

書きたい...

require(["underscore","jquery"],function(_,$){
    // do something here
})

そして、このフォルダー構造でjqueryとアンダースコアを見つけてほしい...

/
/lib/
    /jquery/
           /jquery.js
    /underscore/
           /underscore.js

現在、私は書かなければならない...

require(["/lib/underscore/underscore","/lib/jquery/jquery"],function(_,$){
    // do something here
})

またはいくつかのクレイジーラッパー...

function req(arr,cb){
  require(arr.join().replace(/(\w+)/g,function(mod){ return "/lib/"+mod+"/"+mod }).split(","),cb)
}
4

2 に答える 2

0

requirejs.configはい、これは、次のように - 関数でthis を指定することで機能するはずです。

requirejs.config({
    //By default load any module IDs from js/lib
    baseUrl: 'js/lib',

    //except, if the module ID starts with "app",
    //load it from the js/app directory. paths
    //config is relative to the baseUrl, and
    //never includes a ".js" extension since
    //the paths config could be for a directory.
    paths: {
        app: '../app'
    }
});

Require.js API-docs から取得したため、paths- プロパティで、使用するライブラリのすべてのパスを指定できます

于 2013-02-21T21:22:41.637 に答える
0

パス構成オプションを使用して、必要な方法でパスを追加できます。

var libPaths = (function() {
  var libs = ["jquery", "underscore"];

  var lib, paths = {};
  for(var i=0; i < libs.length; i++) {
    lib = libs[i];
    paths[lib] = "/lib/" + lib + "/" + lib;
  }
  return paths;
})();

requirejs.config({
  paths: libPaths
});

オーバーライドをさらに追加するには、単にlibs配列に追加します。

于 2013-02-21T21:25:47.893 に答える