问题描述
我最近发现了 Google 闭包编译器,它的功能似乎非常好。
话虽如此,我在一次使用多个外部代码文件时遇到了问题。 例如,在我的 html 文件中,我可能嵌入了两个不同的 javascript 代码:
<script src="code1.js"></script>
<script src="code2.js"></script>
现在我可以轻松地使用 Closure 编译器通过高级优化单独编译和压缩这两个脚本,但是这两个脚本可能(并且很可能会)出现问题,因为这两个脚本相互覆盖/函数被覆盖。>
根据我自己的研究 (reading all the guides on developers.google.com/closure/compiler),似乎有三种解决方案:
- 将两个 javascript 文件合并为一个。编译器甚至有一个方便的函数来为你做这件事
这里的问题是我不能这样做,因为此 javascript 代码的一部分特定于此 html 文件,而另一部分也在其他地方使用。
- 将一个脚本的所有变量和函数定义为脚本的 externs。
除非有某种方法可以自动执行此操作,否则在我的情况下手动工作太多,无法实现。
- 使用 SIMPLE_OPTIMIZATIONS 作为优化级别
这就是我目前正在做的事情,但显然,如果有一种(现实的)方法来使用更高级的优化,我更愿意使用它们。
澄清一下,这两个脚本不相互引用,单独手动优化两者不起作用的唯一原因是因为闭包编译器可能会在第一个脚本中命名一个函数 a(b,c)
,然后在第二个脚本中命名另一个函数脚本 a()
也是如此,从而覆盖了第一个的引用和函数。
如果有办法
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)