Google Bazel 构建工具可以很容易地解释特定目录树中的每个 CoffeeScript 文件都需要编译为相应的输出 JavaScript 文件:
[genrule(
name = 'compile-' + f,
srcs = [f],
outs = [f.replace('src/', 'static/').replace('.coffee', '.js')],
cmd = 'coffee --compile --map --output $$(dirname $@) $<',
) for f in glob(['src/**/*.coffee'])]
但是假设有 100 个 CoffeeScript 文件,这将调用该coffee
工具 100 次,从而为编译过程增加了许多秒。相反,如果可以向 Bazel 解释该coffee
命令可以将许多输入文件作为输入,那么可以将文件批处理在一起并提供给更少的coffee
调用,从而允许进程的启动时间分摊到更多的文件上,而不仅仅是一个文件。
有什么方法可以向 Bazel 解释coffee
可以一次调用多个文件的方法吗?