Вопрос по html5boilerplate, build-script, jquery, google-closure, google-closure-compiler – Internet Explorer, закрывающий компилятор и запятые

5

Я использую скрипт сборки html5boilerplate и при минимизации скриптов (в которых используется Google Closure Compiler)

Я получаю эту ошибку

-js.all.minify:
     [echo] Minifying scripts
     [copy] Copying 3 files to /Users/Username/Desktop/Web/intermediate/js
    [apply] /Users/Juan/Desktop/Web/js/plugins.js:117: ERROR - Parse error. Internet Explorer has a non-standard intepretation of trailing commas. Arrays will have the wrong length and objects will not parse at all.
    [apply]                 }, { duration: 727 })
    [apply] 

             ^

Но код работает в IE 8, если выполняется без компиляции.

Это код

anim1.animate({
                    'left': '+=32px',
                    'filter': 'alpha(opacity=100)',
                    '-moz-opacity': '1',
                    '-khtml-opacity': '1',
                    'opacity': '1',
                }, { duration: 727 })

Как я могу заставить этот код пройти Compulsure Compiler?

Спасибо

Ваш Ответ

2   ответа
10

anim1.animate({
    'left': '+=32px',
    'filter': 'alpha(opacity=100)',
    '-moz-opacity': '1',
    '-khtml-opacity': '1',
    'opacity': '1'      // <-- No comma here.
}, { duration: 727 });  // <-- I'd also suggest a semicolon there.

Как говорит компилятор Closure, некоторые браузеры не могут анализировать литералы с такими запятыми.

Я потратил так много на этот код, что не мог увидеть его прямо в глазах. Я все еще нахожу странным, что код хорошо работает в IE 7,8,9, но компилятор воспринимает это как фатальную ошибку. Спасибо Fr & # xE9; d & # xE9; ric. Juan Ignacio
Вот статья, которая объясняет, почему:enterprisedojo.com/2010/12/19/…, Вы можете преобразовать эту ошибку в предупреждение, используя--jscomp_warning internetExplorerChecks флаг.
Было бы очень приятно, чтобы JSHint и JSLint сказали мне это, так как я просто потратил впустую весь день на это ... SMDH Спасибо
4

е запятой в конце, но IE8 не полностью поддерживает его ES5 (равно как и IE9, в котором отсутствует строгий режим).

Похожие вопросы