【发布时间】:2015-09-24 18:09:13
【问题描述】:
我创建了一个 JavaScript 库,并在此 URL 上选择了以下选项:Shrink Variables 和 Base62 Encoded:http://dean.edwards.name/packer/。在这个库中,我声明了一个对象ax,但是当我在网页中使用打包版本时,我收到一个错误消息Uncaught ReferenceError: ax is not defined。
这个库的原始代码如下所示。
var ax = {
scaleUp:function(win) {
//code omitted
},
downGrade:function(win) {
//code omitted
}
}
在我使用这个库的网页中,我有如下代码。此代码有效,如果我不使用压缩,而是使用 Microsoft 的 Minifier 对其进行压缩,或者仅使用原始 JavaScript 库而不进行压缩或打包。
var result = ax.downGrade(w);
问题:
为什么压缩版本无法访问变量ax?使用打包版本时需要添加其他内容吗?
更新 1:
我无法让打包文件工作,但在我的情况下,通过以下 url 的另一个压缩实用程序打包我的代码:http://jsutility.pjoneil.net/。它提供了同样出色的压缩效果。
我仍然不确定为什么原始 url 上的实用程序无法生成我的库的工作版本,即使我的原始代码在任何网页上都没有任何错误。
【问题讨论】:
-
查看打包好的 JavaScript 并找出
ax去了哪里。您没有提供任何重现该问题的代码,因此我们无法提供帮助。 -
你是如何链接打包好的脚本的?
-
我的库很大,原始状态下的大小约为 56 KB,打包状态下的大小约为 16 KB。这就是为什么我没有提供我的库,但它有我在这里发布的代码。
-
@Jasen,我刚刚在此链接 dean.edwards.name/packer 上使用了打包器,并选择了 base62 编码和收缩变量。我需要链接这个打包的脚本吗?可能这就是我所缺少的。
-
您的库是否在单独的文件中?一个/一些文件是否依赖于
ax?如果是这样,您需要重新打包它,以便首先打包ax。
标签: javascript packing