分组js文件returns一个奇怪的js错误

Grouping js files returns a strange js error

我有一个网站,它使用了不同的 javascript 插件,还有一堆 js 文件到 运行 (~30)。我想尝试将这些 js 文件分组到一个文件中,并尝试使用 Google 的 Closure 编译器对其应用基本的缩小(仅删除白色 spaces)

我已经介绍了所有的 js 文件,按照它们在我的页面中包含到 Closure Compilers 在线版本的相同顺序,以及 运行 编译。编译参数如下所示:

// ==ClosureCompiler==
// @output_file_name default.js
// @compilation_level WHITESPACE_ONLY
// .... bunch of javascript files here
// ==/ClosureCompiler==

编译运行成功,既没有警告也没有错误。然后我获取结果文件,将其复制到我的服务器,并尝试将其包含到我的页面中。

页面 运行s,但是出现了一个 st运行ge 错误,这使我的 javascript 在操作过程中停止:

TypeError: event.feature.values_ is undefined

我试图获取发生此错误的 space,那里的代码如下所示:

this.vectorLayer.getSource().on("addfeature",function(event){if(typeof event.feature.values_.type=="undefined")return;

这是我自己的 javascript 代码正在做的事情,但这部分代码在页面加载时甚至 运行 都不应该。当我使用单独的 javascript 文件时,页面加载得非常好,没有任何错误,但是删除白色 space 并合并文件后,出现此错误。

根据基本逻辑,我认为通过将 .js 文件按照它们在我的页面中包含的相同顺序加在一起,并且只删除白色-space 来获得较小的文件大小不应导致任何错误,因为无论如何浏览器都会同步加载 js 文件。我在这方面错了吗?如果不是,这个错误的可能原因是什么?

编辑 1:

好的,所以我将问题缩小到单个 .js 文件,即 OpenLayers 的 javascript 文件。如果我不编译该文件并将其单独包含,则一切正常。是什么导致了这个 st运行ge 问题?

事实证明,这是由 Google 端的一种奇怪的缓存机制引起的。重新启动Closure Compiler,并重新引入所有js文件,然后重新编译,解决了我的问题。

感谢大家的评论!