我在Internet Somes论坛上发现了有关在编译文件中导入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 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
答案 0 :(得分:0)
这可能是由于$
变量在全局范围内不可用。 jQuery库通常以jQuery
而不是$
的形式全局可用。也许,您应该改用它:
jQuery( document ).ready( function($) {
也可以缩短为
jQuery( function($) {
然后,该代码块内的所有内容都可以使用$
作为对jQuery的引用。