无法使用 ant 和闭包编译器编译 javascript,因为 Jquery 的 $ 是未声明的

Can't compile javascript using ant and closure compiler because of Jquery's $ is undeclared

本文关键字:Jquery 因为 未声明 javascript 编译 ant 编译器 闭包      更新时间:2023-09-26

我正在尝试让 Google 闭包编译器来编译使用 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 它位于带有 js 的 src 文件夹中.js

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

你需要包含 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>

似乎您的默认外部实习生不包括在您的情况中。

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

相关文章: