{"action":"created","issue":{"url":"https://api.github.com/repos/bem/bem-forum-content-ru/issues/630","labels_url":"https://api.github.com/repos/bem/bem-forum-content-ru/issues/630/labels{/name}","comments_url":"https://api.github.com/repos/bem/bem-forum-content-ru/issues/630/comments","events_url":"https://api.github.com/repos/bem/bem-forum-content-ru/issues/630/events","html_url":"https://github.com/bem/bem-forum-content-ru/issues/630","id":110453053,"number":630,"title":"Альтернативная сборка статики (технологий css, js) для страниц - нужен совет","user":{"login":"shkarupa-alex","id":1289725,"avatar_url":"https://avatars.githubusercontent.com/u/1289725?v=3","gravatar_id":"","url":"https://api.github.com/users/shkarupa-alex","html_url":"https://github.com/shkarupa-alex","followers_url":"https://api.github.com/users/shkarupa-alex/followers","following_url":"https://api.github.com/users/shkarupa-alex/following{/other_user}","gists_url":"https://api.github.com/users/shkarupa-alex/gists{/gist_id}","starred_url":"https://api.github.com/users/shkarupa-alex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shkarupa-alex/subscriptions","organizations_url":"https://api.github.com/users/shkarupa-alex/orgs","repos_url":"https://api.github.com/users/shkarupa-alex/repos","events_url":"https://api.github.com/users/shkarupa-alex/events{/privacy}","received_events_url":"https://api.github.com/users/shkarupa-alex/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/bem/bem-forum-content-ru/labels/bh","name":"bh","color":"bfe5bf"},{"url":"https://api.github.com/repos/bem/bem-forum-content-ru/labels/enb","name":"enb","color":"bfe5bf"},{"url":"https://api.github.com/repos/bem/bem-forum-content-ru/labels/html","name":"html","color":"c7def8"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":10,"created_at":"2015-10-08T13:37:55Z","updated_at":"2015-10-09T12:24:39Z","closed_at":null,"body":"Хочется сделать такой шаблон BEM-сборки, который бы легко интегрировался в код сайта (с точки зрения программиста) и был оптимизирован в плане подключенных CSS/JS файлов.\r\nРечь про CMS 1С-Битрикс у которой своя система сборки/объединения статики. Вариант с merged-бандлами не рассматриваем.\r\nДля сборки используем enb + bh.\r\n\r\nПо факту нужно следующее:\r\nа) для каждой БЭМ-сущности понять перечень необходимых для ее работы статических ресурсов (включая зависимости)\r\nб) этот самый перечень включить в виде HTML-комментария в результирующей HTML непосредственно перед БЭМ-сущностью (чтобы программист знал какие файлы нужно подключить для каждого кусочка HTML)\r\n\r\nПример\r\nдля bemjson:\r\n```js\r\n{\r\n    block : 'bl-1',\r\n    content : [\r\n        {\r\n            elem : 'elem-1',\r\n            mix : { block : 'bl-2' },\r\n            content : [ ... ]\r\n        }\r\n    ]\r\n}\r\n```\r\nполучить html:\r\n```html\r\n<!--\r\n../../desktop.blocks/bl-1/bl-1.css \r\n../../desktop.blocks/bl-1/bl-1.js\r\n-->\r\n<div class=\"bl-1\">\r\n        <!--\r\n        ../../common.blocks/jquery/jquery.js \r\n        ../../desktop.blocks/bl-1/__el-1/bl-1__el-1.js \r\n        ../../desktop.blocks/bl-2/bl-2.css \r\n        -->\r\n    <div class=\"bl-1__el-1 bl-2\">...</div>\r\n</div>\r\n```\r\n\r\nКакой вариант вижу я сам: вклиниться в генерацию HTML (BH.apply), вычислять для каждого блока (с учетом миксов), генерировать комментарий и добавлять его в HTML.\r\n\r\nВопросы которые хочу задать:\r\n1. Есть ли более светлые идеи как сделать описанную задачу?\r\n2. Есть ли какая-то enb-технология которую можно взять за основу? Особо интересует вычисление CSS/JS необходимых для произвольного узла bemjson"},"comment":{"url":"https://api.github.com/repos/bem/bem-forum-content-ru/issues/comments/146849704","html_url":"https://github.com/bem/bem-forum-content-ru/issues/630#issuecomment-146849704","issue_url":"https://api.github.com/repos/bem/bem-forum-content-ru/issues/630","id":146849704,"user":{"login":"tadatuta","id":475746,"avatar_url":"https://avatars.githubusercontent.com/u/475746?v=3","gravatar_id":"","url":"https://api.github.com/users/tadatuta","html_url":"https://github.com/tadatuta","followers_url":"https://api.github.com/users/tadatuta/followers","following_url":"https://api.github.com/users/tadatuta/following{/other_user}","gists_url":"https://api.github.com/users/tadatuta/gists{/gist_id}","starred_url":"https://api.github.com/users/tadatuta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tadatuta/subscriptions","organizations_url":"https://api.github.com/users/tadatuta/orgs","repos_url":"https://api.github.com/users/tadatuta/repos","events_url":"https://api.github.com/users/tadatuta/events{/privacy}","received_events_url":"https://api.github.com/users/tadatuta/received_events","type":"User","site_admin":false},"created_at":"2015-10-09T12:24:39Z","updated_at":"2015-10-09T12:24:39Z","body":"http://ericdye.it/wp-content/uploads/2015/03/Challenge-Accepted-Meme.jpg"}}