犀牛w。 Closure编译器生成已有的函数

时间:2018-03-20 13:34:17

标签: javascript requirejs google-closure-compiler rhino requirejs-optimizer

我使用闭包编译器来优化require.js项目。

我正在使用" app.build.js"像这种方法的文件建议:

http://requirejs.org/docs/optimization.html#wholeproject

优化选项设置为" 关闭"我通过 Rhino 在Java中运行它:

java -classpath ./tools/lib/rhino/js.jar;./tools/lib/closure/compiler.jar org.mozilla.javascript.tools.shell.Main ./tools/require/r.js -o app.build.js dir=./temp optimize=closure

我在app.build.js中使用此配置封闭编译器:

closure: {
    CompilerOptions: {},
    CompilationLevel: 'SIMPLE_OPTIMIZATIONS', 
    loggingLevel: 'WARNING'
}

由于"使用严格的"修复了一些错误。规则,一切正常,我的项目在一个文件中缩小。 这是在Window 10上运行构建时。

但如果我在另一台机器上运行它(在Ubuntu 16.04下),有些方法是名称" on "通过闭包编译器。因此,在运行时,当我尝试使用"这个 on (" EVENT" ..." 它调用随机方法并使所有内容崩溃。

请注意" this.on"在父类中定义(使用require extends mechanism)。我尝试在当前类中定义它:闭包编译器创建另一个" on"无论如何,在它旁边的方法,它在运行时覆盖第一个:'(

我试图仅仅优化相应的文件:问题仍然存在,除了另一种方法命名为" on",另一种方法命名为" o0" " OA"等...

有没有人能够解决这样的问题,你知道如何避免它吗? 也许我不知道一些编译器选项?

我使用了闭包编译器v20180204(当前最后一个)

修改

似乎封闭编译器在这里不负责任。实际上,在SIMPLE模式下使用闭包补偿并不能重命名。并且在ADVANCED模式下单独使用闭包编译器(java -jar closure.jar ...)工作得很好。

所以问题是:在使用优化="关闭"时,Rhino是否应用了一些重命名规则?模式? 如果是这样的话,我们可以用任何方式编辑这些规则吗?

0 个答案:

没有答案