1

アンダースコアはAMDモジュールとして読み込まれるため、同じ統一モジュール名でアンダースコアにアクセスしてオーバーライドを使用できるように、アンダースコアに対してグローバルオプションを設定する最善の方法について誰もが推奨事項を持っています。

私はそれをいじってみましたが、これまでのところ、依存関係としてアンダースコアを含め、変更を加えてから、変更されたアンダースコアを返すラッパーがあります。

paths: {
    'underscore': 'libs/underscore/1.2.3/underscore',
    'underscore-override': 'libs/underscore/define'
}

define.jsの中には、基本的に次のものがあります。

define(['underscore'], function (_) {

    // use mustache syntax
    _.templateSettings = {
        interpolate : /\{\{(.+?)\}\}/g
    };

    return _;

});

このアプローチは機能しますが、「underscore-custom」を使用する必要がないように、これを実現するためのはるかに洗練された方法があると確信しています。

助言がありますか?

乾杯 :-)

更新:受け入れられた回答の提案に基づいて、私は今、次のことを行います:

libs / bootstrap.js

define([
    // add custom library defines here
    '../libs/underscore/define'
], function () {

    var libs = [].slice.call(arguments),
        initialize = function () {
            libs.forEach(function (lib) {
                if (typeof lib === 'function') {
                    lib();
                }
            });
        }

    return {
        initialize : initialize
    }

});

libs / underscore / define

define(['underscore'], function(_) {
    return function () {    
        // add custom settings here
    };
});

main.js

require(['libs'], function(libs){
    libs.initialize();
});
4

1 に答える 1

2

構成が必要なものをすべてロードするコンフィギュレーターモジュールを使用できる可能性があります。

define(['underscore', 'jquery'], function(_, jQuery){
  var setUp = function(){
  // Underscore Configuration
  _.templateSettings = {};

  // jQuery Configuration
  $.someplugin = {};
  };
  return { setUp: setUp }; // or something like that
});

//main.js
define(['configurator'], function(config){
  config.setUp();
});
于 2011-12-10T12:53:32.180 に答える