我在互联网上发现了几个关于在编译文件中输入jquery的论坛
https://developers.google.com/closure/compiler/docs/api-tutorial3?csw=1
Is it possible to use Closure Compiler ADVANCED_OPTIMIZATIONS with jQuery?
他们谈论Externs,但是当我编译我的代码时,我收到了一个错误:
$未定义
我试过这个命令:
java -jar compiler.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 compiler.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 compiler.jar --js js / test.js --js_output_file min-js / app.min.js --compilation_level ADVANCED_OPTIMIZATIONS --externs js / jquery.js
这可能是由于$
变量在全球范围内不可用。通常,jQuery库在全球范围内可用作jQuery
而不是$
。或许,您应该使用此代替:
jQuery( document ).ready( function($) {
这也可以缩短为
jQuery( function($) {
然后代码块中的所有内容都可以使用$
作为jQuery的引用。