Javascript Google闭包编译器高级_优化-排除所有函数名

Javascript Google闭包编译器高级_优化-排除所有函数名,javascript,google-closure-compiler,Javascript,Google Closure Compiler,我正在使用Google的闭包编译器来减少Java脚本代码的大小。不幸的是,闭包编译器也会在高级模式下更改所有函数名,而没有一个简单的选项来更改它 我确实需要完全排除定义为属性的函数(例如car.bla=function())。这包括我使用的、在本地代码中根本没有定义的,以及我自己定义的 我知道有extern和exports(尽管我不完全理解它们),但我不想在代码之外再维护任何额外的文件 我也会发现排除任何函数(也是非属性函数) 在谷歌搜索了几个小时后,我仍然没有找到解决这个问题的方法。这里有一些

我正在使用Google的闭包编译器来减少Java脚本代码的大小。不幸的是,闭包编译器也会在高级模式下更改所有函数名,而没有一个简单的选项来更改它

我确实需要完全排除定义为属性的函数(例如
car.bla=function()
)。这包括我使用的、在本地代码中根本没有定义的,以及我自己定义的

我知道有extern和exports(尽管我不完全理解它们),但我不想在代码之外再维护任何额外的文件

我也会发现排除任何函数(也是非属性函数)


在谷歌搜索了几个小时后,我仍然没有找到解决这个问题的方法。

这里有一些答案

  • 使用
    @export
    将属性标记为“由外部源使用”,例如角度绑定
  • 创建一个
    externs
    。当您的代码与您的代码分开编译,但它们需要交互时,可以使用它们。看看外部变量有多简单
  • 将编译级别降低为
    仅空白
  • 根据您的设置,您可以通过
    --property\u renaming=ALL\u UNQUOTED
    并使用
    foo['bar']
    访问
    foo.bar
  • 根据您的设置,您可能能够通过
    --property\u rename=OFF

  • 它不应该重命名外部可访问的方法,所以过度发布应该会有所帮助。你到底是什么意思?例如,我正在调用一个函数server.DoStuff,它正在将其更改为server.aa服务器不是在本地文件中定义的,而是使用代码的环境中的一个全局变量。这有帮助吗?不是真的,他们谈论外部文件和注释,尽管我只是想找到一种完全禁用它的方法。