我遇到了一个与JavaScript压缩有关的奇怪问题,问题是当将诸如test1.js、test2.js这样的JavaScript文件放置在/assets/javascript/test
文件夹中,并使用以下选项进行闭包编译时:
val defaultOptions = new CompilerOptions()
defaultOptions.closurePass = true
defaultOptions.setProcessCommonJSModules(false)
defaultOptions.setPrettyPrint(true)
CompilationLevel.WHITESPACE_ONLY.setOptionsForCompilationLevel(defaultOptions)
它们被缩小了,但这会导致test1.min.js和test2.min.js文件共享相同的代码...当文件在同一页面中使用时,这将导致一些额外的JavaScript错误,并占用更多的磁盘空间。
然而,如果未设置CompilerOptions
,JavaScript可以正确编译而没有重复,但编译级别太严格,我们的JavaScript因为某些在这些文件中写的东西而停止工作。总的来说,缩小过程太晚了,无法通过默认编译器选项修复所有项目js文件,所以现在唯一的选择是配置它以使用轻量级的缩小,但不进行js重复。任何对此问题的帮助都将不胜感激!
我正在使用Java项目的Play Framework 2.1.1。