由于Jquery的$未声明,无法使用ant和closure编译器编译javascript

Jus*_*tin 4 javascript ant jquery google-closure-compiler

我试图让谷歌闭包编译器工作来编译我使用Jquery的javascript代码,但我一直在变量$ is unclared有没有办法让它看到$变量.有没有办法让闭包编译器看到Jquery库但不能编译它.这是我的蚂蚁脚本

<?xml version="1.0"?>
<project basedir="." default="compile">

<taskdef name="jscomp" classname="com.google.javascript.jscomp.ant.CompileTask"
       classpath="build/compiler.jar"/>

<target name="compile">

<jscomp compilationLevel="simple" warning="verbose" 
        debug="false" output="output/file.js">

  <sources dir="${basedir}/src">
    <file name="js.js"/><!-- the file I'm trying to compile -->
  </sources>

</jscomp>

</target>

</project>
Run Code Online (Sandbox Code Playgroud)

我的Jquery库名为min.js,它位于带有js.js的src文件夹中

我确信这是一个简单的问题,但我只是遗漏了一些东西.提前致谢!

Cha*_*rth 5

你需要包含jQuery externs.每个主要版本的jQuery都有自己的extern文件.您可以在http://code.google.com/p/closure-compiler/source/browse/#svn%2Ftrunk%2Fcontrib%2Fexterns找到它们

一旦你下载了相应的extern,这里是你在编译时如何引用它:

<?xml version="1.0"?>
<project basedir="." default="compile">

<taskdef name="jscomp" classname="com.google.javascript.jscomp.ant.CompileTask"
       classpath="build/compiler.jar"/>

<target name="compile">

<jscomp compilationLevel="simple" warning="verbose" 
    debug="false" output="output/file.js">

  <sources dir="${basedir}/src">
    <file name="js.js"/><!-- the file I'm trying to compile -->
  </sources>

  <externs dir="${basedir}/src">
    <file name="jquery-1.7.js"/>
  </externs>
</jscomp>

</target>
Run Code Online (Sandbox Code Playgroud)