Google Базэл построить инструмент делает его достаточно легко объяснить, что каждый CoffeeScript файл в определенном дереве каталогов должен быть скомпилирован к соответствующему выходу JavaScript файла:Может ли Bazel дать указание использовать одну команду для обновления N целей?
[genrule(
name = 'compile-' + f,
srcs = [f],
outs = [f.replace('src/', 'static/').replace('.coffee', '.js')],
cmd = 'coffee --compile --map --output $$(dirname [email protected]) $<',
) for f in glob(['src/**/*.coffee'])]
Но учитывая, скажем, 100 CoffeeScript файлов, это вызовет инструмент coffee
100 раз, добавив много секунд для процесса компиляции. Если вместо этого можно было бы объяснить Bazel, что команда coffee
может принимать множество входных файлов в качестве входных данных, тогда файлы могут быть собраны вместе и предложены для менее coffee
вызовов, что позволяет время запуска процесса быть амортизировано для большего количества файлов, чем только один.
Есть ли способ объяснить Bazel, что coffee
может быть вызван со многими файлами одновременно?
Спасибо. Теперь я понимаю, что мне нужно задать вопрос: есть ли способ создать Базель, чтобы избежать обеих проблем! Я спрошу это как отдельный вопрос. –