Javascript YUI压缩机:找到一个未声明的符号
我有一组Javascript文件,它们共同构成了一个系统。系统的不同部分位于不同的(全局)名称空间(例如NSA、NSB等),这些名称空间可能是对象,例如Javascript YUI压缩机:找到一个未声明的符号,javascript,yui-compressor,Javascript,Yui Compressor,我有一组Javascript文件,它们共同构成了一个系统。系统的不同部分位于不同的(全局)名称空间(例如NSA、NSB等),这些名称空间可能是对象,例如 NSA = { ... lots of stuff ... } 现在,在我的各个模块中,我可能有如下代码: NSA.method(); 我的代码JSLint是干净的,因为我在文件顶部的注释中声明了这些命名空间对象: /*global dNSA NSB NSC */ 当我使用-v(verbose)开关在这些文件上运行YUI C
NSA = {
... lots of stuff ...
}
现在,在我的各个模块中,我可能有如下代码:
NSA.method();
我的代码JSLint是干净的,因为我在文件顶部的注释中声明了这些命名空间对象:
/*global dNSA NSB NSC */
当我使用-v(verbose)开关在这些文件上运行YUI Compressor(v2.4.2)时,它会发出有关引用的命名空间对象的警告,例如:
Found an undeclared symbol: $
这是为了使用$for jQuery
如何定义这些变量,使YUI Compressor不会发出警告,但我添加的任何内容都不会导致对象发生更改。YUI库无法识别Jquery,因此它“认为”这是一个错误。看起来没什么好担心的。添加
var $ = window.$;
您的代码。Ahh-这似乎是一个尚未提供的理想功能。存在一张罚单:我也面临同样的问题。请确保使用最新的问题。我有这个问题,直到我改为1.3.1.2版,我尝试了这个,但不幸的是,它导致了一个严重的失败,即,它没有保留美元的价值。我无法想象为什么不能。这不是jQuery的具体问题,而是我在不同文件中使用的全局值,这些文件都加载到同一个应用程序中。JSLint提供了一种机制,告诉它某些全局文件是在当前文件之外定义的。我希望YUIC能提供类似的功能。