Partially skip sections with Google Closure Compil

2019-01-07 01:08发布

I'm generating a javascript on the server like and would like to run Google Clousure Compiler to be ran on the php source code of the script.

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

Just wandering if there is any way in telling the compiler to skip optimazation of ? Like a regexp skip:

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

Best regards,

Niclas

2条回答
2楼-- · 2019-01-07 01:34

You can do this:

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

The compiler won't touch the contents of the string.

查看更多
Summer. ? 凉城
3楼-- · 2019-01-07 01:44

I have found that my code is much easier to maintain when I separate my client-side JavaScript from my server-side logic. Now I write my scripts such that my server-side processing emits initialization variables.

Example - Server Side:

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

And in my client-side javascript:

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

Using this style, my client-side javascript compiles easily with Closure-compiler.

查看更多
登录 后发表回答