Столкнулся со следующей проблемой: в коммите https://github.com/bem/bem-tools/commit/dc3e59c6fddd7c928d062042f4da6838124711de был добавлен forceCache для разделённых потоков.
При этом происходит следующее: читается files.json, создаются сборки, обновляется files.json.
Проблема возникает в том случае, если изначально files.json по каким-либо причинам не актуален ( bem был запущен сначала в одной ветке, а потом в другой. А папка cache в .gitignore ), то, соответственно, и итоговые сборки получаются не верные.
Так вот можно ли как-нибудь этого избежать не избавляясь от разделённых потоков ( которые приводят к включению forceCache )? И в чём оптимизация, если в итоге files.json всё равно переиндексируется и обновляется ( но только позже, то есть если потом снова запустить bem, то так как files.json становится актуальным всё отрабатывает предсказуемо )?
@scf2k Вова, подскажешь?
Поток принудительно включает кеш только для себя, на остальные потоки он не влияет. Это нужно чтобы он не сканировал уровни заново (в этом потоке при запуске нет информации об уровнях, которая есть в основном потоке), а загрузил из файла.
Можно настроить кеш так, чтобы в него не попадали уровни проекта (контент которых меняется при переключении веток), а кешировались только внешние библиотеки.
Такова особенность кеша - выигрываем в скорости за счет согласия что кешируемые уровни у нас не меняются, или наоборот - информация всегда актуальна, но теряем в скорости.
:+1: весьма логичное, на мой взгляд, поведение. Респект ;-)