#javascript #requirejs
#javascript #requirejs
Вопрос:
В моем конфигурационном файле RequestJS я загружаюсь select2
, и я хотел бы также загрузить для него локали. В настоящее время у меня есть эта настройка :
require.config({
enforceDefine: true,
baseUrl: '/js',
shim: {
'bootstrap@3.1.1': {
deps: [ 'jquery' ],
exports: '
Проблема здесь в том, что lib/select2_locales/select2_locale_fr
ее необходимо загрузить после select2.min.js
.
Есть ли какой-нибудь способ изменить эту конфигурацию или добавить опцию, чтобы я мог загружать локали вместе select2
с файлом конфигурации require?
Ответ №1:
Если это так, то select2_locale_fr не является зависимостью от select2, 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);
}
Комментарии:
1. правильно, но если мне нужно включить больше локалей, что тогда? Нужно ли мне создавать какой-то фальшивый модуль, зависящий от каждой локали, которые, в свою очередь, зависят от
select2
? Мне кажется странным.2. Вы говорите о разных модулях для каждой локали, о модуле, который отличается поведением и ожиданиями (даже если эти различия минимальны)
3. Лучшим подходом, чем тот, который вы используете, было бы загрузить модуль select2, а затем определить свой язык во время выполнения, прежде чем требовать его
4.проблема здесь в том, как загрузить локали после
select2
загрузки? Является ли "законным" использование requirejs внутриinit
функцииshim
правила? O_o Я не хочу обеспечивать загрузку локали каждый раз, когда мне требуетсяselect2
. Если я не обернуselect2
внутри полностью настраиваемого локального модуля ... ?5. Я не знаю, почему вы так стремитесь использовать прокладку для довольно нестандартного поведения, рассмотрим пример, который я опубликовал выше
// export jQuery...
},
'jquery@2.1.1': {
exports: 'Проблема здесь в том, что lib/select2_locales/select2_locale_fr
ее необходимо загрузить после select2.min.js
.
Есть ли какой-нибудь способ изменить эту конфигурацию или добавить опцию, чтобы я мог загружать локали вместе select2
с файлом конфигурации require?
Ответ №1:
Если это так, то select2_locale_fr не является зависимостью от select2, select2 является зависимостью от select2_locale_fr
Комментарии:
1. правильно, но если мне нужно включить больше локалей, что тогда? Нужно ли мне создавать какой-то фальшивый модуль, зависящий от каждой локали, которые, в свою очередь, зависят от
select2
? Мне кажется странным.2. Вы говорите о разных модулях для каждой локали, о модуле, который отличается поведением и ожиданиями (даже если эти различия минимальны)
3. Лучшим подходом, чем тот, который вы используете, было бы загрузить модуль select2, а затем определить свой язык во время выполнения, прежде чем требовать его
4.проблема здесь в том, как загрузить локали после
select2
загрузки? Является ли "законным" использование requirejs внутриinit
функцииshim
правила? O_o Я не хочу обеспечивать загрузку локали каждый раз, когда мне требуетсяselect2
. Если я не обернуselect2
внутри полностью настраиваемого локального модуля ... ?5. Я не знаю, почему вы так стремитесь использовать прокладку для довольно нестандартного поведения, рассмотрим пример, который я опубликовал выше
},
'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
с файлом конфигурации require?
Ответ №1:
Если это так, то select2_locale_fr не является зависимостью от select2, select2 является зависимостью от select2_locale_fr
Комментарии:
1. правильно, но если мне нужно включить больше локалей, что тогда? Нужно ли мне создавать какой-то фальшивый модуль, зависящий от каждой локали, которые, в свою очередь, зависят от
select2
? Мне кажется странным.2. Вы говорите о разных модулях для каждой локали, о модуле, который отличается поведением и ожиданиями (даже если эти различия минимальны)
3. Лучшим подходом, чем тот, который вы используете, было бы загрузить модуль select2, а затем определить свой язык во время выполнения, прежде чем требовать его
4.проблема здесь в том, как загрузить локали после
select2
загрузки? Является ли «законным» использование requirejs внутриinit
функцииshim
правила? O_o Я не хочу обеспечивать загрузку локали каждый раз, когда мне требуетсяselect2
. Если я не обернуselect2
внутри полностью настраиваемого локального модуля … ?5. Я не знаю, почему вы так стремитесь использовать прокладку для довольно нестандартного поведения, рассмотрим пример, который я опубликовал выше