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
Make level configuration more abstract. Closes #319 #320
Conversation
|
||
return levels | ||
return (this.getLevelsByBundleName()[buildLevel] || []) |
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.
Если уж getLevelsByBundleName
, то как минимум, bundleName
(а не bundleLevel
) должен в параметр метода передаваться.
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.
это ж не параметр метода, а обращение по ключу к объекту, который из getLevelsByBundleName()
возвращается
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.
Я выше решил «схалявить и упаковал» в предыдущем комменте несколько замечаний» в одно высказывания — не прокатило ;)
1.1) Метод называется getLevelsByBundleName
— это не правда. Он возвращает не список уровней, а какой-то объект который потом надо еще обработать.
1.2) Тем более, возвращаемое «что-то» никак не соотносится с чтотоByЧтото
— метод вообще не принимает агрументы. Откуда By
?
2) Часть про BundleName
никак не «коррелирует» ;) с тем, что внутри него все опирается на BundleLevel
.
Т.е. pages
, bundles
или desktop-pages
— это BundleLevelName
; какой-нибудь index
— это BundleName
@narqo Дошло, переименовал в Кроме того обнаружил, что от бандлового |
Может вообще все это унести в |
а чем это лучше? при внесении в |
Так ведь никто не запрещает переопределять
Вот я очень сильно против таких громких высказываний :) Если в проекте есть один уровень бандлов — |
'design/touch.blocks', | ||
'design/touch-phone.blocks' | ||
]; | ||
getLevelsMap : function() { |
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.
вообще, в истории с хешом, мне больше всего не нравится, что если у тебя будет на каждую платформу примерно 20 уровней (как у нас в islands-*) хеш будет большой и необзорный.
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.
Ты же и сейчас можешь унести описание уровней во конфиг
.bem/levels.js
бандла.
проблема этого подхода в том, что конфигурация bem make
оказывается разбросана по всему проекту. оно, конечно, полный БЭМ, все дела, но по факту начать в такой стуктуре разбираться пользователям сложно.
хочется ситуации, когда есть make.js
, он может обладать неким магическим знанием, но при этом предоставлять такие хелперы, которые бы позволяли в 99% случаев не разбираться с кодом самого make.js
и декларировать всю кастомизацию в конфиге, состоящем из массивов и хешей.
если снабдить такой конфиг jsdoc-ом, где про getTechs
написать, что метод «возвращает список технологий, которые необходимо собрать» и аналогично для собираемых уровней, то, кмк, этим можно будет начать пользоваться без глубокого погружения. а генератору стабов в идеале будет достаточно делать JSON.stringify и писать результат в один файл, а не инжектиться в множесте файлов во множество мест.
но я согласен, что для проекта с одним уровнем это все лишнее. просто хочется, чтобы было консистентно, иначе задача генерации конфигов каждого проекта превращается в адовый хардкод.
хеш будет большой и необзорный
согласен, но вроде и текущий вариант тут не особо спасает :(
@narqo