4

我正在尝试让 Google Closure Compiler 编译我的使用 Jquery 的 javascript 代码,但我不断得到变量 $ 未声明有没有办法让它看到 $ 变量。有没有办法让闭包编译器看到 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>

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

我敢肯定这是一个简单的问题,但我只是错过了一些东西。提前致谢!

4

2 回答 2

5

您需要包括 jQuery 外部。每个主要版本的 jQuery 都有自己的外部文件。您可以在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>

于 2012-08-15T21:51:38.030 回答
0

似乎您的默认外部人员未包含在您的情况中。

此链接将使您更好地理解: https ://developers.google.com/closure/compiler/docs/api-tutorial3#externs

于 2012-08-15T20:44:37.327 回答