Закрытие командной строки компилятора для jQuery - PullRequest
0 голосов
/ 20 декабря 2018

Я нашел в Интернете несколько форумов о импорте jquery в скомпилированный файл

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

Использование компилятора Google Closure

Можно ли использовать Closure Compiler ADVANCED_OPTIMIZATIONS с jQuery?

Они говорят о Externs, но когда я компилирую свой код, я получаю ошибку:

$ не определено

Я пробовал следующие команды:

java -jar compiler.jar --js js / test.js js / test.js --js_output_filemin-js / app.min.js --externs jquery-3.3.externs.js - уровень компиляции 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;

    }

} )

Test 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 --jsJS / тесt.js --js_output_file min-js / app.min.js - уровень компиляции ADVANCED_OPTIMIZATIONS --externs js / jquery.js

Ошибка Изображение ошибки

1 Ответ

0 голосов
/ 20 декабря 2018

Вероятно, это связано с тем, что переменная $ недоступна в глобальной области видимости.Часто библиотека jQuery доступна по всему миру как jQuery вместо $.Возможно, вам следует использовать это вместо:

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

, которое также можно сократить до

jQuery( function($) {

Тогда все внутри этого блока кода может использовать $ в качестве ссылки на jQuery.

...