Rails 3.1 Возможная ошибка в Asset Pipeline и Uglifier - PullRequest
4 голосов
/ 01 января 2012

Я столкнулся с проблемой развертывания на Heroku do из-за ошибки в задаче rake

rake assets:precompile

Внизу - ошибка, которую я получаю, если интегрирую

Ошибка происходит из-за uglifier.

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

Я обошел ошибку, установив:

# Compress JavaScripts and CSS
config.assets.compress = false

Я не смог проверить файлы, так как временные файлы были очищены.Я также не смог заставить отладчик в RubyMine остановиться на точке останова.

Есть идеи, если это ошибка?Любой способ получить временные файлы, чтобы не удалить?Любой способ заставить отладчик RubyMine работать с задачей rake (да, пробовал очевидное, используя EAP 112-291.

rake assets: precompile: все RAILS_ENV = production RAILS_GROUPS = rake ресурсов прервано! Неожиданносимвол '' (строка: 21454, столбец: 0, позиция: 641761)

Ошибка при новом JS_Parse_Error (/tmp/execjs20111231-15374-1fve7h4.js:497:22) в js_error (/ tmp / execjs20111231-15374-1fve7h4.js: 505: 15) в parse_error (/tmp/execjs20111231-15374-1fve7h4.js:596:17) в Object.next_token [в качестве входных данных] (/tmp/execjs20111231-15374-1fve7h4.js:839:17) далее (/tmp/execjs20111231-15374-1fve7h4.js:943:37) в Object.semicolon [as 1] (/tmp/execjs20111231-15374-1fve7h4.js:986:38) в prog1 (/ tmp /execjs20111231-15374-1fve7h4.js: 1527: 28) в simple_statement (/tmp/execjs20111231-15374-1fve7h4.js:1123:35) в /tmp/execjs20111231-15374-1fve7h4.js:1031:35 в / tmp / exmp-15374-1fve7h4.js: 1510: 32

Ответы [ 4 ]

6 голосов
/ 01 января 2012

Возможно, вы обнаружите, что у одного из js-файлов где-то есть синтаксическая ошибка.Это может быть пропущенная точка с запятой в конце блока или другая незначительная проблема.Часто браузеры все равно будут загружать js, и это будет работать, но uglifier не может сжать его с этими ошибками.Сначала я бы начал искать в файлах локализации.

Один из способов выяснить, в каком файле содержится ошибка, - это перекомпилировать локально с минимальным набором файлов и добавлять что-то одно за другим, пока оно не сломается.Если это из-за пропущенной точки с запятой, поломка будет последним добавленным вами файлом.

3 голосов
/ 07 февраля 2012

Мой предварительно скомпилирован после того, как я удалил ложное выражение «отладчик».Woops.

2 голосов
/ 30 мая 2013

Если кто-то, читающий эту ветку, сталкивается с проблемами с символами Юникода или «недопустимой последовательностью байтов в UTF-8» в вашем приложении rails, попробуйте поместить это в свой файл production.rb:

# override default uglifier options so we don't mangle unicode
  config.assets.js_compressor = Uglifier.new(output: {ascii_only: true})

В моем случае, uglifier преобразовывал строки в моем javascript-коде, например \udbff, в символы UTF-8 í¯¿, что в конечном итоге нарушало некоторые юникод-регулярные выражения. (Это происходило с turbo-sprockets и codemirror, но вы можете столкнуться с этим всякий раз, когда ваш javascript использует ASCII-представления символов Юникода.)

0 голосов
/ 12 марта 2012

Файл I18N "jquery-ui-i18n.js" имеет плохой символ перед каждым комментарием.

Глядя на первые две строки с надписью «more» в оболочке, отображается неправильный символ:

<U+FEFF>/* Afrikaans initialisation for the jQuery UI date picker plugin. */
/* Written by Renier Pretorius. */

После удаления этого символа он работает.

...