Ошибка при запуске `rake assets: precompile` - PullRequest
3 голосов
/ 18 января 2012

У меня есть приложение rails 3.1, которое я пытаюсь протолкнуть к героку.Пока пуш работает, ошибка заключается в том, что он пытается разгрести активы.Получается ошибка

Unexpected token punc, expected punc (line: 11225, col: 7, pos: 321149)
undefined
(in /Users/Matt/Orchive/Orchive/app/assets/javascripts/application.js)

Однако этот файл application.js содержит только некоторые комментарии.Вот оно:

// This is a manifest file that'll be compiled into including all the files listed below.
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
// be included in the compiled file accessible from http://example.com/assets/application.js
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
//= require jquery
//= require jquery_ujs
//= require_tree

Я не очень хорошо понимаю активы, но я попытался запустить rake assets:precompile в терминале до нажатия и получил эту большую ошибку

/Users/Matt/.rvm/rubies/ruby-1.9.2-p180/bin/ruby /Users/Matt/.rvm/gems/ruby-1.9.2-p180/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
rake aborted!
Unexpected token punc, expected punc (line: 11225, col: 7, pos: 321149)

undefined
(in /Users/Matt/Orchive/Orchive/app/assets/javascripts/application.js)

Tasks: TOP => assets:precompile:primary
(See full trace by running task with --trace)
rake aborted!
Command failed with status (1): [/Users/Matt/.rvm/rubies/ruby-1.9.2-p180/bi...]

Tasks: TOP => assets:precompile
(See full trace by running task with --trace)

Я могу отредактироватьи измените это на то, что показывает --trace, если это будет более полезным.Я думаю, что это обычная, легко исправляемая ошибка, которую я просто не знаю, как это сделать.

Ответы [ 2 ]

5 голосов
/ 18 января 2012

Посмотрите на этот URL, это почти та же ошибка. https://github.com/resolve/refinerycms/issues/1186

Исправление здесь: https://github.com/resolve/refinerycms/pull/1189

Сводка: В вашем файле application.js отсутствуют пропущенные запятые или точки с запятой Зарегистрируйте полную трассировку здесь при локальном запуске с помощью следующей команды:

bundle exec rake assets:precompile --trace
3 голосов
/ 27 ноября 2013

Мое предложение. Удалите строку require_tree. Это имеет тенденцию быть излишним и создает гораздо больше проблем. Гораздо лучше специально запрашивать файлы, а не добавлять все в каталог.

http://guides.rubyonrails.org/asset_pipeline.html#manifest-files-and-directives

Объяснение .

У вас неправильная запятая. или точка с запятой. Маловероятно, что он находится в jquery или jquery_ujs, он, вероятно, находится в другом файле, но заметная строка - это строка require_tree:

//= require jquery
//= require jquery_ujs
//= require_tree

Глядя на свой вопрос, вы упомянули, что «Однако этот файл application.js содержит только некоторые комментарии». Это не комментарии! Они на самом деле требуют эти файлы и включают их в себя. Волшебство Rails, и в данном случае Sprockets, заключается в том, что вы можете написать файл javascript и добавить требуемый вверху, который будет включать все эти файлы вверху. Таким образом, вы можете включить библиотеки поставщиков, такие как jQuery, но тогда вам нужно работать только с одним файлом javascript.

Таким образом, приведенные выше комментарии включают в себя jquery, вспомогательные библиотеки raqu jquery, а затем require_tree включает все остальные файлы в каталоге javascripts. Откройте свой веб-сайт на локальном компьютере и посмотрите на источник. Могу поспорить, у вас есть некоторые дополнительные файлы JavaScript, которые вы не ожидали.

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