Javascript Google闭包将代码划分为编译单元

Javascript Google闭包将代码划分为编译单元,javascript,google-closure-compiler,Javascript,Google Closure Compiler,我的JavaScript库变得相当大,并且使用闭包编译的速度很慢。我想创建一个只编译已更改模块的makefile。然而,出于大小和安全性的考虑,我仍然希望使用高级的_优化来重命名模块内容,以及从其他模块调用的函数。有没有一个合理的方法来做到这一点 基本上,我希望编译模块A并将实际类成员名称到简化版本的映射存储在某个地方。然后,在编译模块B时,它应该将访问模块A的代码转换为使用正确的缩略名称,就像我一次编译整个模块一样。最终,您无法获得全局死代码删除和单独编译。您必须以某种方式导出一个接口,使编译

我的JavaScript库变得相当大,并且使用闭包编译的速度很慢。我想创建一个只编译已更改模块的makefile。然而,出于大小和安全性的考虑,我仍然希望使用高级的_优化来重命名模块内容,以及从其他模块调用的函数。有没有一个合理的方法来做到这一点


基本上,我希望编译模块A并将实际类成员名称到简化版本的映射存储在某个地方。然后,在编译模块B时,它应该将访问模块A的代码转换为使用正确的缩略名称,就像我一次编译整个模块一样。

最终,您无法获得全局死代码删除和单独编译。您必须以某种方式导出一个接口,使编译器知道您对要保留的代码有外部使用。

这不是最佳方式,因为您需要“导出”所有库函数(因为Closure不知道哪些函数用于其他文件)。您不会得到死代码删除——这是一个非常理想的特性。您可以使用生成的变量映射文件强制进行相同的重命名。但是,我的建议是获得一个快速的CPU…有没有一种方法可以在不编写新工具的情况下使用生成的变量映射文件?是的,我相信有一个命令行选项可以使用现有的变量映射文件,以便在不同的运行中重命名是一致的。谢谢!我没有意识到--variable_map_input_file和--property_map_input_file的强大功能。他们还允许我做一些我一直想做的其他技巧。在使用变量和属性映射时要小心,不一定有1到1的映射,它们不会阻止死代码删除、内联等,这对于单独编译是必不可少的。