enb / enb-bh

BH support for ENB
Other
15 stars 12 forks source link

В версии 0.4.0 стал неверно собираться клиентский bh с использованием bh-client-module #24

Closed 1999 closed 9 years ago

1999 commented 9 years ago

В версии 0.4.0 поломалась сборка с использованием технологии bh-client-module и dependencies. В версии 0.2.3 собранный файл выглядел примерно так:

modules.define('bh', ["module1"], function(provide, module1) {
  var BH = ...
  var bh = new BH();
    bh.setOptions({
        jsAttrName: 'data-bem',
        jsAttrScheme: 'json'
    });
    bh.lib.module1 = module1;

  bh.match(...);
  bh.match(...);
  bh.match(...);

  provide(bh);
});

В версии 0.4.0 так:

(function() {
  var BH = ...
  var bh = new BH();
    bh.setOptions({
        jsAttrName: 'data-bem',
        jsAttrScheme: 'json'
    });
    bh.lib.module1 = module1;

  bh.match(...);
  bh.match(...);
  bh.match(...);

  modules.define('bh', ["module1"], function(provide, module1) {
    provide(bh);
  });
})();

Это приводит к тому, что может быть ошибка module1 is not defined, поскольку он не загружен на момент выполнения кода bh.lib.module1 = module1. Этот пулреквест восстанавливает правильное поведение из 0.2.3

arikon commented 9 years ago

@andrewblond Андрей, а тестов на эту технологию нет? Мы со временем тоже хотим перейти на bh-шаблоны на клиенте. Не хочется, чтобы оно внезапно взрывалось ;)

blond commented 9 years ago

@arikon, тестов в enb-bh пока нету совсем =(

blond commented 9 years ago

@1999, кажется, что правильнее откатиться к варианту из v0.2.3 и просто добавлять в конце:

modules.define('mimic_bh', ['bh'], function (provide, bh) {
  provide(bh);
});
1999 commented 9 years ago

Так ведь в этом и фикс. Сейчас так собирается.

blond commented 9 years ago

@1999, сейчас это оборачивается в анонимную функцию, а можно весь код bh вставлять в modules.define('mimic_bh', ...` как это делалось раньше.

1999 commented 9 years ago

@andrewblond поправил

blond commented 9 years ago

@1999, спасибо большое! ;)

blond commented 9 years ago

Изменения вошли в v0.4.1.