Частично пропустить разделы с помощью Google Closure Compiler

Я генерирую javascript на сервере, как и хотел бы запустить Google Clousure Compiler для запуска на исходном коде php скрипта.

var jsvar = <?=$var ? true : false ?>;

Просто бродить, есть ли способ сказать компилятору пропустить оптимизацию? Как регулярное выражение пропустить:

/<\?=.*?\?>/

С наилучшими пожеланиями,

Никлас

2 ответа

Решение

Я обнаружил, что мой код гораздо проще поддерживать, когда я отделяю свой клиентский JavaScript от моей серверной логики. Теперь я пишу свои сценарии так, что моя обработка на стороне сервера генерирует переменные инициализации.

Пример - сторона сервера:

<?php echo 'var mynamespace = {}; mynamespace.jsvar = "' . $var . '";'; ?>

И в моем клиентском JavaScript:

var mynamespace = window['mynamespace'] || {};
function MyFunction() {
  alert(mynamespace['jsvar']);
}
MyFunction();

Используя этот стиль, мой клиентский JavaScript легко компилируется с помощью Closure-compiler.

Вы можете сделать это:

var jsvar = eval("<?=$var ? true : false ?>");

Компилятор не будет касаться содержимого строки.

Другие вопросы по тегам