【发布时间】:2015-05-20 01:46:58
【问题描述】:
我有一个使用 Google Closure 编译的 JavaScript 模块。该模块需要包含在一个网页中,该网页还包含一些第三方无关代码。
问题是两段代码都使用命名空间“com”,所以:com.companyone.x.y.z 和 com.companytwo.x.y.z
似乎闭包编译器会自动生成代码来创建名称空间,如下所示:
var com = {mycompany: {}};
因此会覆盖之前使用过 com 命名空间的任何其他内容。
如果我要手动编写,我会先检查命名空间是否存在,如下所示:
var com=com||{};
com.mycompany=com.mycompany||{};
作为临时解决方案,我正在考虑将“var com={”自动替换为“var com=com||{”,但这似乎很麻烦。
有没有办法确保闭包编译器不会擦除覆盖现有的 com 命名空间?
【问题讨论】:
-
你在使用编译器的 AMD/CommonJS 支持吗?
-
您需要发布代码以便我们重现该问题。就目前而言,您没有提供足够的信息。这不仅包括 Javascript,还包括您正在使用的编译标志。
标签: javascript google-closure-compiler google-closure