jQuery的闭包编译器命令行

时间:2018-12-20 14:47:03

标签: javascript jquery google-closure-compiler

我在Internet Somes论坛上发现了有关在编译文件中导入jquery的信息

  

https://developers.google.com/closure/compiler/docs/api-tutorial3?csw=1

     

Using Google Closure compiler

     

Is it possible to use Closure Compiler ADVANCED_OPTIMIZATIONS with jQuery?

他们谈论Externs,但是当我编译代码时出现错误:

  

$未定义

我尝试了以下命令:

  

java -jar editor.jar --js js / test.js js / test.js --js_output_file min-js / app.min.js --externs jquery-3.3.externs.js --compilation_level ADVANCED_OPTIMIZATIONS      

java -jar editor.jar --js js / test.js js / test.js --js_output_file min-js / app.min.js --externs https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js --compilation_level ADVANCED_OPTIMIZATIONS

test.js是一个我想压缩的简单代码:

$( document ).ready( function() {

    var val = 0;

    //document.querySelector( ".button" ).addEventListener( "click", upButton );
    $( ".button" ).on( "click", upButton );

    function upButton() {

        val++;
        document.querySelector( ".show" ).innerText = val;

    }

} )

测试JakeParis

文件test.js

jQuery( function($) {

    var val = 0;

    //document.querySelector( ".button" ).addEventListener( "click", upButton );
    $( ".button" ).on( "click", upButton );

    function upButton() {

        val++;
        document.querySelector( ".show" ).innerText = val;

    }

} )

命令

  

java -jar editor.jar --js js / test.js --js_output_file min-js / app.min.js --compilation_level ADVANCED_OPTIMIZATIONS --externs js / jquery.js

错误 error image

1 个答案:

答案 0 :(得分:0)

这可能是由于$变量在全局范围内不可用。 jQuery库通常以jQuery而不是$的形式全局可用。也许,您应该改用它:

jQuery( document ).ready( function($) {

也可以缩短为

jQuery( function($) {

然后,该代码块内的所有内容都可以使用$作为对jQuery的引用。