Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others


0 votes
in Technique[技术] by (71.8m points)

javascript - Google Closure Compiler with advanced optimization for multiple scripts

I've recently found the Google closure compiler, and it seems very good at what it does.

That being said I'm running into issues when using multiple external code files at once. In my html file I might for example have two different javascript codes embedded:

<script src="code1.js"></script>
<script src="code2.js"></script>

Now I can use the Closure compiler easily to compile and compress both of these scripts individually with advanced optimization, but there might (and most likely will) be issues by both of these scripts overwriting each other/functions being overwritten.

From my own research (reading all the guides on developers.google.com/closure/compiler), there seem to be three solutions to this:

  • Concatenate the two javascript files into one. The compiler even has a handy function to do this for you

Issue here is that I can't do this, because one part of this javascript code is specific to this html file, while the other part is used elsewhere as well.

  • Define all variables and functions of one script as externs for the script.

Unless there is some way that does this automatically this is too much manual work in my case to make it feasible.

  • Use SIMPLE_OPTIMIZATIONS as optimization level

This is what I am currently doing, but obviously if there was a (realistic) way to use the more advanced optimizations, I would prefer using those.

To clarify, the two scripts do not reference each other, the only reason manually optimizing both individually doesn't work is because closure compiler might name a function a(b,c) in the first script and then another function in the second script a() as well, thus overwriting the references and functions of the first.

If there was some way

Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share