Javascript YUICompressor ошибка - PullRequest
       22

Javascript YUICompressor ошибка

7 голосов
/ 31 января 2009

Используя YUICompressor, я получаю следующую ошибку из моего кода JavaScript:

    [ERROR] 270:201:missing name after . operator
    [ERROR] 292:6:missing ; before statement

Вот код JavaScript в следующих строках:

Строка 270:

new _ow.getScript(_ow.wwwurl+'/widget/save?title='+encodeURIComponent(this.obj.title.value)+'&url='+encodeURIComponent(this.obj.url.value)+'&tags='+this.obj.tags.value+'&private='+this.obj.private.checked+'&c='+this.obj.notes.value+'&service='+services+'&token='+(_ow.token ? encodeURIComponent(_ow.token): ''), function(data) {

Строка 292:

});

Я не могу понять, в чем проблема, поскольку этот код Javascript отлично работает во всех браузерах.


РЕДАКТИРОВАТЬ : Я разделил строку на несколько строк и выяснил, что "пропущенное имя после. Operator" генерируется этим кодом:

this.obj.private.checked

Является ли private ключевым словом, которое сводит с ума компрессор YUI?

Ответы [ 5 ]

13 голосов
/ 01 февраля 2009
3 голосов
/ 01 февраля 2009

Во-первых, я бы переформатировал код, чтобы сделать его более читабельным:

new _ow.getScript(_ow.wwwurl
    + '/widget/save?title='
    + encodeURIComponent(this.obj.title.value)
    + '&url='
    + encodeURIComponent(this.obj.url.value)
    + '&tags='
    + this.obj.tags.value
    + '&private='
    + this.obj.private.checked
    + '&c='
    + this.obj.notes.value
    + '&service='
    + services
    + '&token='
    + (_ow.token
        ? encodeURIComponent(_ow.token)
        : ''),
    function(data) {
    });

Затем строка #, сообщаемая компрессором, должна помочь вам разобраться в том, в чем проблема.

2 голосов
/ 17 февраля 2012

вы можете скачать и установить apache ant, скачать исходный код yui, отредактировать исходный код (в папке src, в подпапках org и com), чтобы удалить все ссылки на ключевое слово, блокирующее ваш прогресс (оно идет довольно быстро, я я думаю, что отредактировал 3-4 файла, мне пришлось дважды запустить ant, потому что в первый раз появилась ошибка ссылки, но все, что нужно, это удалить еще одну строку, ссылающуюся на ключевое слово), и как только ant успешно скомпилируется, у вас будет совершенно новый .jar, и вы можете использовать это для компиляции вашего проблемного JS. сделал это с помощью yuicompressor2-4.7 и ключевого слова import (довольно широко используется в коде расширения Mozilla)

2 голосов
/ 25 февраля 2010

Запомните использовать параметр --type js ex.

yuicompressor --type js -o comressed.js filetocompress.js
0 голосов
/ 01 февраля 2009

Вы можете сделать свою собственную жизнь намного проще, просто разбив ее на несколько строк. Вы все равно сжимаете его, так что не похоже, что он изменит окончательный размер ...

...