Получение синтаксической ошибки компиляции сценария Coffee после обновления до Rails 6 - PullRequest
0 голосов
/ 25 марта 2020

После обновления с Rails 5.2.4.2 до Rails 6.0.2.2 Теперь я получаю ошибку компиляции сценария кофе, но Exe cJs не указывает файл, в котором это происходит:

I Я не внес никаких других изменений в мою кодовую базу, кроме обновления моих драгоценных камней.

  Error during failsafe response: SyntaxError: [stdin]:1:14: missing / (unclosed regex)
  compile ((execjs):7528:19)
  eval (eval at <anonymous> ((execjs):7539:8), <anonymous>:1:10)
  (execjs):7539:8
  (execjs):7545:14
  (execjs):1:40
  Object.<anonymous> ((execjs):1:58)
  Module._compile (internal/modules/cjs/loader.js:1158:30)
  Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
  Module.load (internal/modules/cjs/loader.js:1002:32)
  Function.Module._load (internal/modules/cjs/loader.js:901:14)
  Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
  internal/main/run_main_module.js:18:47
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/execjs-2.7.0/lib/execjs/external_runtime.rb:39:in `exec'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/execjs-2.7.0/lib/execjs/external_runtime.rb:21:in `eval'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/execjs-2.7.0/lib/execjs/external_runtime.rb:46:in `call'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/coffee-script-2.4.1/lib/coffee_script.rb:78:in `compile'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/coffee_script_processor.rb:24:in `block in call'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/cache.rb:92:in `fetch'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/coffee_script_processor.rb:23:in `call'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:84:in `call_processor'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:65:in `reverse_each'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:65:in `call_processors'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:22:in `block in <class:CompositeProcessor>'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:33:in `call'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:84:in `call_processor'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:65:in `reverse_each'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:65:in `call_processors'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/loader.rb:182:in `load_from_unloaded'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/loader.rb:59:in `block in load'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/loader.rb:335:in `fetch_asset_from_dependency_cache'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/loader.rb:43:in `load'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/cached_environment.rb:44:in `load'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/bundle.rb:41:in `block in call'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/utils.rb:167:in `dfs'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/bundle.rb:42:in `call'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:84:in `call_processor'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:65:in `reverse_each'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:65:in `call_processors'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/loader.rb:182:in `load_from_unloaded'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/loader.rb:59:in `block in load'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/loader.rb:335:in `fetch_asset_from_dependency_cache'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/loader.rb:43:in `load'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/cached_environment.rb:44:in `load'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/base.rb:81:in `find_asset'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/base.rb:88:in `find_all_linked_assets'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/sprockets-4.0.0/lib/sprockets/manifest.rb:125:in `block (2 levels) in find'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:24:in `block in execute'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:41:in `block in synchronize'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:41:in `synchronize'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:41:in `synchronize'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:19:in `execute'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/promise.rb:563:in `block in realize'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:353:in `run_task'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:342:in `block (3 levels) in create_worker'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:325:in `loop'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:325:in `block (2 levels) in create_worker'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:324:in `catch'
  /Users/sean297/.rvm/gems/ruby-2.6.5/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:324:in `block in create_worker'
assets/javascripts/application.js

//= require media.match.js
//= require jquery
//= require jquery.mb.browser.min.js
//= require jquery_ujs
//= require jquery.remotipart
//= require bootstrap/bootstrap
//= require bootstrap/bootstrap_overrides
//= require jquery-ui
//= require datatables/jquery.dataTables
//= require js/highcharts
//= require jquery_placeholder/jquery.placeholder
//= require jquery.scrollTo
//= require enquire.js
//= require media.queries.js
//= require_directory .
//= require handlebars/handlebars-4.0.5
//= require jquery-fileupload/basic
//= require results_mailers/results_mailers.js
//= require schedule/table.js
//= require jquery.ui.datepicker.validation.min.js
//= require jquery.dynamic-form
assets/config/manifest.js

//= link_tree ../images
//= link_directory ../javascripts .js
//= link_directory ../stylesheets .css

rails (6.0.2.2)
coffee-rails (4.2.2)
  coffee-script (>= 2.2.0)
  railties (>= 4.0.0)
coffee-script (2.4.1)
  coffee-script-source
  execjs
coffee-script-source (1.12.2)

Редактировать: после попытки использовать decaffeinate, я считаю, что синтаксическая ошибка здесь:

//= require ./date_time_picker.js
//= require ./jquery-ui-sortable.js
//= require ./bootstrap_multiselect.js
//= require ./spectrum.js

$ ->
  $(".color-control").spectrum({
    preferredFormat: "hex"
  })

  $('[rel="tooltip"],[data-rel="tooltip"],[data-toggle="tooltip"]').tooltip()
  $('[rel="popover"],[data-rel="popover"],[data-toggle="popover"]').popover()

Не нравится //= ...

1 Ответ

0 голосов
/ 27 марта 2020

Я бы посмотрел на две вещи:

A. Убедитесь, что sprockets все еще установлен в вашем проекте. Не уверен, как вы пошли на обновление, но вам, возможно, придется явно потребовать require "sprockets/railtie".

B. Этот код находится в файле, помеченном <filename>.coffee.erb?

Похоже, что rails не обрабатывает этот файл как ERB перед обработкой его как Coffeescript, что указывает либо на то, что Sprockets не существует, либо на то, что этот файл не был проанализирован правильно по любой причине.

...