Объявите тест 2 за пределами закрытия функции, не назначая его:
var test2;
(function() {
test2 = function(...
Я понимаю, что это не изменение конфигурации Closure Compiler, как вы хотели, но оно улучшит читабельность кода и разрешит компилятор Closure CompilerВозражения.
Немного из того, что вы получаете с Closure Compiler, на самом деле из-за его истории, внутреннего руководства Google по Javascript-коду.Так, например, вы не можете использовать оператор with, потому что это противоречит политике, даже если вы как публичный пользователь просто хотите минимизировать свой код и можете иметь политику, которая позволяет использовать оператор with в вашей компании.
* 1007Тем не менее, я считаю, что не рекомендуется объявлять глобальное внутри закрытия функции (даже если это допустимый Javascript).И было бы не так сложно написать скрипт, который будет искать
/(\w[\w\d-]+) = function/
и объявлять его с помощью var в верхней части оскорбительных файлов.И это, вероятно, приведет к тому, что все файлы, измененные таким образом, будут легче анализироваться кодерами, новыми для данного файла.
Оставшаяся опция - изменить код закрытого компилятора с открытым исходным кодом, чтобы он предупреждал вместо ошибок оэто нарушение политики Google JS.