调试Closure-compiler编译的Javascript

Ham*_*ish 4 javascript dojo google-closure-compiler

我有一个复杂的dojo应用程序,可以正常编译,但在使用Google的Closure Compiler进行编译后,我在某些行为方面会有细微差别.

实际上,它非常难以调试,而且我一直无法找到有关使用Google Closure编译和未编译的Javascript之间可能的功能差异的任何信息.

任何人都可以指出我已知的差异的方向,或分享任何类似的经验和从哪里开始寻找的一些想法?

Cha*_*rth 9

一般Closure编译器调试技巧

  • 使用VERBOSE警告级别.这会打开所有检查.
  • 使用debug标志.它使重命名的符号可笑得很长,但它们的命名方式可以让你找到原始符号.如果代码与debug标志一起工作但没有它,则几乎可以肯定是重命名问题.
  • 绝对使用formatting=PRETTY_PRINT.没有它,调试压缩代码会很痛苦.
  • 使用源地图
  • 使用禁用基于类型的优化--use_types_for_optimization false.不正确的类型注释会导致编译器做出无效的假设.

更新:从20150315编译器版本开始,默认情况下启用基于类型的优化.