Хотя это старый вопрос. Сегодня я столкнулся с той же проблемой и обнаружил, что ее можно решить с помощью CompilerOptions .
.
Я подписался на эту тему .
Мы запускаем компилятор из Java на нашем сервере перед отправкой кода клиенту. Это работало для нас в простом режиме.
private String compressWithClosureCompiler(final String code) {
final Compiler compiler = new Compiler();
final CompilerOptions options = new CompilerOptions();
Logger.getLogger("com.google.javascript.jscomp").setLevel(Level.OFF);
if (compressRemovesLogging) {
options.stripNamePrefixes = ImmutableSet.of("logger");
options.stripNameSuffixes = ImmutableSet.of("debug", "dev", "info", "error",
"warn", "startClock", "stopClock", "dir");
}
CompilationLevel.SIMPLE_OPTIMIZATIONS.setOptionsForCompilationLevel(options);
final JSSourceFile extern = JSSourceFile.fromCode("externs.js", "");
final JSSourceFile input = JSSourceFile.fromCode("input.js", code);
compiler.compile(extern, input, options);
return compiler.toSource();
}
Он удалит все вызовы logger.debug, logger.dev ... и т. Д. И т. Д.