При сборке gulp генерируется не валидный index.bemhtml.js
serhioone opened this issue · 6 comments
При сборке галпом генереруется не валидный index.bemhtml.js,
если его подключить на клиент то браузер ругается на отсутсвие переменной exports,
и у файла отсутсвует код в начале и в конце файла который объявляет bemhtml как ym модуль или глобальную переменную.
Мы подумаем, как это сделать на уровне пакета, но пока можно воспрользоваться рецептом https://github.com/gulpjs/gulp/blob/master/docs/recipes/browserify-multiple-destination.md и просто прогнать результат сборки клиентских шаблонов (https://github.com/bem/project-stub/blob/master/gulpfile.js#L61) через browserify.
@tadatuta вы указываете на строчку 61 где собирается js файл, а проблема в самом bemhtml.js который на строчке 69
Файл, который собирается на 69 изначально не задуман для использования на клиенте (хотя такая возможность, конечно, тоже должна быть). Но на способ лечения это не влияет — нужно браузерифаить.
@tadatuta решил проблему немного костыльно, сделал еще один этап сборки и обернул его в недостающий код
clientBemhtml: bundle => bundle.src('bemhtml') .pipe(concat('any.bemhtml.js')) .pipe(bemhtml()) .pipe(concat(bundle.name + '.bemhtml.js')) .pipe(insert.wrap(headerBemhtml, footerBemhtml)) .pipe(gulp.dest("./build/js")),
browserify у меня так и не заработал
Мы сегодня обсудим схему обертки с мейнтейнером bem-xjst
. По результатам определимся, что делать в project-stub
: если получится быстро сделать обертку в самом bem-xjst
, то будем ждать ее, если нет, то временно добавим такое решение прямо в с project-stub
.
Исправлено