New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
В версии 0.4.0 стал неверно собираться клиентский bh с использованием bh-client-module #24
Conversation
|
||
if (mimic) { | ||
this._defineModule(mimic, file, depNames, libNames); | ||
this._defineModule(mimic, file, ['bh'], ['bh'], null); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Почему mimic
зависит от bh
, а не от реальных зависимостей?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ну, насколько я понял, mimic - это что-то, имитирующее bh (к слову зачем тогда делается modules.define('bh')
?). И проще сразу объявить его зависимость от bh, разве нет?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
к слову зачем тогда делается modules.define('bh')
При имитации должна оставаться возможность использовать модуль как bh
в том числе.
И проще сразу объявить его зависимость от bh, разве нет?
Если bh
модуль в коде после modules.define
будет использовать зависимости, то код в mimic
сломается.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Если bh модуль в коде после modules.define будет использовать зависимости, то код в mimic сломается.
Поясни? Вот у меня есть сейчас такое:
modules.define('bh', ['i18n'], function (provide, i18n) {
bh.lib.i18n = i18n;
provide(bh);
});
modules.define('mimic_bh', ['bh'], function (provide, bh) {
provide(bh);
});
modules.require('mimic_bh', function (mimic) {
console.log(mimic.lib.i18n); // ok
});
@andrewblond Андрей, а тестов на эту технологию нет? Мы со временем тоже хотим перейти на bh-шаблоны на клиенте. Не хочется, чтобы оно внезапно взрывалось ;) |
@arikon, тестов в |
@1999, кажется, что правильнее откатиться к варианту из modules.define('mimic_bh', ['bh'], function (provide, bh) {
provide(bh);
}); |
Так ведь в этом и фикс. Сейчас так собирается. |
@1999, сейчас это оборачивается в анонимную функцию, а можно весь код |
@andrewblond поправил |
@1999, спасибо большое! ;) |
В версии 0.4.0 стал неверно собираться клиентский bh с использованием bh-client-module
Изменения вошли в |
В версии 0.4.0 поломалась сборка с использованием технологии bh-client-module и dependencies.
В версии 0.2.3 собранный файл выглядел примерно так:
В версии 0.4.0 так:
Это приводит к тому, что может быть ошибка
module1 is not defined
, поскольку он не загружен на момент выполнения кодаbh.lib.module1 = module1
. Этот пулреквест восстанавливает правильное поведение из 0.2.3