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

标签 javascript jquery ant google-closure-compiler

我正在尝试让 Google Closure Compiler 编译我使用 Jquery 的 javascript 代码,但我一直在获取变量 $ is undeclared 是否有办法让它看到 $ 变量。有没有办法让闭包编译器看到 Jquery 库但不编译它。 这是我的 Ant 脚本

<?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.js 位于 src 文件夹中

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

最佳答案

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

一旦您下载了适当的外部文件,下面是您在编译时如何引用它:

<?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>

关于javascript - 无法使用 ant 和闭包编译器编译 javascript,因为 Jquery 的 $ 未声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11976849/

相关文章:

java - GWT 源构建失败

Javascript 在同一选项卡中打开新窗口

javascript - Django - 使用 JavaScript 进行实时更新

javascript - 我希望能够获取所有 `<b></b> 的内容

javascript - setTimeout() 内的 document.write() 覆盖所有页面

java - 如何在 ant build 创建的 jar 的错误堆栈跟踪中获取源代码行号?

javascript - 如何为单独的 webpack 服务器/客户端配置正确覆盖 babel@7 插件

php - 运行 javascript 函数然后发布供下载

jQuery tablesorter - 不对具有格式化货币值的列进行排序

eclipse - 用于Hadoop 2的Pig 0.13.0的Ant构建失败