Теоретически, вы можете просто объединить файлы с помощью простой утилиты, такой как cat . Файлы * .js - это просто сегменты Javascript, и (при условии, что ни один из них не имеет синтаксических ошибок) их можно объединить так же, как файлы * .txt. Вы должны делать это при каждом развертывании, чтобы входные файлы могли оставаться разделенными, а closurebuilder запускался для сгенерированного артефакта. например,
compile-js:
// Concatenate the input files
cat js/main.js js/module1.js js/module2.js > generated/intermediate.js
// Compile the optimised output
closurebuilder.py \
--root=closure-library/ \
--root=generated/ \
--namespace="myproject.start"
Кроме того, вы рассматривали второе решение? Для этого вам нужно «экспортировать» символы, помеченные Closure как мертвый код, это так же просто, как создать глобальную переменную с тем же именем:
window['LAB'] = $LAB;
Лучший подход будет зависеть от того, сколько функций вам нужно включить, и от того, требуется ли вам Javascript оставаться разделенным после компиляции (некоторые сложные библиотеки не очень хорошо работают при интеграции в сторонний код).