RequireJS模块依赖项和包括

时间:2014-06-23 19:12:05

标签: javascript requirejs

在我的RequestJS配置文件中,我正在加载select2,我还要为其加载语言环境。我目前有这个设置:

require.config({
  enforceDefine: true,
  baseUrl: '/js',
  shim: {
    'bootstrap@3.1.1': {
      deps: [ 'jquery' ],
      exports: '$'        // export jQuery...
    },
    'jquery@2.1.1': {
      exports: '$'
    },
    'select2': {
      deps: [ 
        'bootstrap',
        'lib/select2_locales/select2_locale_fr',
        /// NOTE : add locales here
        'css!/css/select2/select2.css',
        'css!/css/select2/select2-bootstrap.css',
      ],
      exports: '$.fn.select2'
    }
  },
  paths: {
    'bootstrap@3.1.1': 'lib/bootstrap.min',
    'jquery@2.1.1': 'lib/jquery.min'
  },
  map: {
    '*': {
      'css': 'css@0.1.2',
      'jquery': 'jquery@2.1.1',
      'bootstrap': 'bootstrap@3.1.1'
    }
  }
});

问题在于,lib/select2_locales/select2_locale_fr需要在 select2.min.js之后加载

我是否可以通过某种方式更改此配置或添加选项,以便我可以从需要配置文件加载语言环境以及select2

1 个答案:

答案 0 :(得分:1)

如果是这种情况,则select2_locale_fr不是select 2的依赖项,select2是select2_locale_fr的依赖项

define('locale_specific_select2',['select2'], function(select2){
  select2.accomodateNewLocale= function(stuff){
    doWhatYouNeedToWith(stuff);
  }
  locale = determineLocale()
  function processLocaleData(localeData){
    select2.accomodateNewLocale(localeData);
  }
  require(['pathTOLocalePlugin'+locale], processLocaleData);
}