【发布时间】:2014-06-13 12:22:40
【问题描述】:
我有一个 Rails 应用程序,用户可以通过它来检索一些资产,例如 angular、angular-plugins 和 ng-Ckeditor。当我尝试部署我的应用程序时,我的主要问题是上述错误。 我找不到发生了什么,我认为这可能是 ckeditor gem 和 bower 的 ng-ckeditor 的一些问题。 在错误消息下,我将粘贴我的 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)
生产.rb
config.assets.precompile << Rails.root.join('vendor', 'assets', 'bower_components')
config.assets.precompile += Ckeditor.assets
部署.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} && bundle exec rake bower:clean"
run "cd #{latest_release} && bundle exec rake bower:update:prune['--config.interactive=false']"
run "cd #{latest_release} && rm vendor/assets/bower_components/ng-ckeditor/LICENSE"
run "cd #{latest_release} && 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(+admin) 中删除时,ckeditor/override 部署完成,但 gem 的 ckeditor 与 ng-ckeditor 的播放并不矛盾,继续播放
我相信 ng-ckeditor 会初始化它自己的 ckeditor。
【问题讨论】:
标签: ruby-on-rails deployment capistrano asset-pipeline bower