Появилась необходимость собирать не только основной файл js но и подключать к нему web worker. Как Реализовать такой функционал в пределах БЭМ проекта?
Появилась необходимость собирать не только основной файл js но и подключать к нему web worker. Как Реализовать такой функционал в пределах БЭМ проекта?
ping
@kompolom раскрой, пожалуйста, подробнее задачу. В том смысле, что подключать-то «как обычно», ничего БЭМ-специфичного в таком подключении нет — просто указать путь к файлу.
@tadatuta Хочется сохранить порядок в проекте. Вот и думаю, куда их положить. Так то понятно что можно воркеры отдельно складывать.
Так тут универсального ответа нет, нужно смотреть на семантику: чем именно воркер занимается, с какими сущностями связан и т.д.
Допустим есть блок
a
которому нужно сделать серьезное синхронное вычисление. поэтому блокуa
нужен сервис воркер в который мы вынесем вычисление. Вопрос: куда лучше положить worker чтобы он не потерялся, и как собрать проект чтобы в блоке была ссылка на воркер?Решил положить воркер рядом с js блока в ту же папку но назвал
worker.js
. и подключить его с помощьюborschik.link
однако, сборка начала падать и ругаться на то что нет файлаproject-root/worker.js
Куда копать, товарищи?@kompolom если для сборки используется конфиг по мотивам
project-stub
, то тамborschik
вызывается на уже собранный JS-бандл, так что считать относительные пути нужно от бандла, а не от блока.Если хочется, чтобы пути вычислялись от блока, следует вместо https://github.com/bem/project-stub/blob/master/.enb/make.js#L101 собирать борщиковые инклюды и самостоятельно примерживать
ym
:@tadatuta вообще беда с js. Уже пришлось форкнуть enb-js чтобы добавить поддержку babel. Теперь еще и борщик... А как получается что из css фризы относительно блока работают? Вроде тоже на бандл borsckik натравливается.
Если не хочется сидеть на форках, для транспиллинга есть, например, enb-babelify.
А схема с борщиком не требует никаких изменений в пакетах сборки, только лишь подправить конфиг
ENB
.С
CSS
все работает благодаря тому, что все урлы подменяются при сборке бандла с помощьюpostcss-url
.