#ruby-on-rails #deployment #capistrano #asset-pipeline #bower
#ruby-on-rails #развертывание #capistrano #ресурс-конвейер #беседка
Вопрос:
у меня есть приложение rails, которое пользователи используют для восстановления некоторых ресурсов, таких как angular, angular-plugins и ng-Ckeditor. Моя основная проблема заключается в вышеупомянутой ошибке, когда я пытаюсь развернуть свое приложение. Я не могу найти, что произошло, и я действительно думаю, что это может быть какой-то проблемой с ckeditor gem и ng-ckeditor из bower. Под сообщением об ошибке я вставлю свой файл production.rb, deploy, gemfile, чтобы сообщить мне, если вы видите что-то не так.
ExecJS::ProgramError: Unexpected token: eof (undefined) (line: 11, col: 0, pos: 286)
Error
at new JS_Parse_Error (/tmp/execjs20140613-30493-1mkpf99js:2357:10754)
at js_error (/tmp/execjs20140613-30493-1mkpf99js:2357:10973)
at croak (/tmp/execjs20140613-30493-1mkpf99js:2357:19198)
at token_error (/tmp/execjs20140613-30493-1mkpf99js:2357:19335)
at unexpected (/tmp/execjs20140613-30493-1mkpf99js:2357:19423)
at block_ (/tmp/execjs20140613-30493-1mkpf99js:2357:24668)
at ctor.body (/tmp/execjs20140613-30493-1mkpf99js:2357:24322)
at function_ (/tmp/execjs20140613-30493-1mkpf99js:2357:24387)
at expr_atom (/tmp/execjs20140613-30493-1mkpf99js:2357:27439)
at maybe_unary (/tmp/execjs20140613-30493-1mkpf99js:2357:30108)
(in /home/******/site/shared/bundle/ruby/2.1.0/bundler/gems/ckeditor-84ef6a7e3ee8/app/assets/javascripts/ckeditor/override.js.erb)
Production.rb
config.assets.precompile << Rails.root.join('vendor', 'assets', 'bower_components')
config.assets.precompile = Ckeditor.assets
Deploy.rb
before 'deploy:assets:precompile', 'deploy:assets:install'
namespace :deploy do
namespace :assets do
desc 'install asset dependencies'
task :install do
run "cd #{latest_release} amp;amp; bundle exec rake bower:clean"
run "cd #{latest_release} amp;amp; bundle exec rake bower:update:prune['--config.interactive=false']"
run "cd #{latest_release} amp;amp; rm vendor/assets/bower_components/ng-ckeditor/LICENSE"
run "cd #{latest_release} amp;amp; mv vendor/assets/bower_components/ng-ckeditor/src/styles/ng-ckeditor.less vendor/assets/bower_components/ng-ckeditor/src/styles/ng-ckeditor.scss"
end
end
end
Application.js и admin/application.js
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require jquery_nested_form
//= require ckeditor/override
//= require ckeditor/init
//= require underscore-min
//= require microplugin
//= require sifter.min
//= require selectize.min
//= require isotope.pkgd.min
//= require fit-columns
//= require jquery.screwdefaultbuttonsV2
//= require fancySelect
//= require flash
//= require notifications
//= require reviews
//= require raty
//= require how
//= require teachers
//= require init
//= require angular
//= require angular-resource
//= require angular-xeditable
//= require angular-sanitize
//= require angular-bootstrap
//= require ng-ckeditor
//= require app
//= require_tree ./angular
Импорт — это когда я удаляю из application.js ( администратор) ckeditor / переопределение развертывания завершено, но ckeditor из gem не воспроизводится в отличие от ng-ckeditor с продолжением воспроизведения
Я действительно считаю, что ng-ckeditor инициализирует свой собственный ckeditor.
Ответ №1:
Для всех, кому может понадобиться помощь в этом, я решил проблему,
config.assets.js_compressor = Uglifier.new(mangle: false)