ExecJS :: RuntimeError:SyntaxError:意外的标记:运算符(>)(行:22342,col:24,pos:826182)

时间:2016-10-01 19:09:22

标签: ruby-on-rails ruby git reactjs heroku

这里有相当新的rails开发者。我试图在Heroku上有效地部署我的rails应用程序时遇到此错误消息。我的猜测是,当JS资产预编译时会遇到一些语法错误。

我在SO上发现了一个类似的问题here,但它似乎仍然没有得到解决,我已经尝试了回复中的所有建议。

感谢任何帮助。这是我的问题的命令行跟踪:

ExecJS::RuntimeError: SyntaxError: Unexpected token: operator (>) (line: 22342, col: 24, pos: 826182)

Error
    at new JS_Parse_Error (/tmp/execjs20161001-3-1oidjycjs:3623:11948)
    at js_error (/tmp/execjs20161001-3-1oidjycjs:3623:12167)
    at croak (/tmp/execjs20161001-3-1oidjycjs:3623:22038)
    at token_error (/tmp/execjs20161001-3-1oidjycjs:3623:22175)
    at unexpected (/tmp/execjs20161001-3-1oidjycjs:3623:22263)
    at expr_atom (/tmp/execjs20161001-3-1oidjycjs:3623:31244)
    at maybe_unary (/tmp/execjs20161001-3-1oidjycjs:3624:1752)
    at expr_ops (/tmp/execjs20161001-3-1oidjycjs:3624:2523)
    at maybe_conditional (/tmp/execjs20161001-3-1oidjycjs:3624:2615)
    at maybe_assign (/tmp/execjs20161001-3-1oidjycjs:3624:3058)
    at maybe_assign (/tmp/execjs20161001-3-1oidjycjs:3624:3232)
    at expression (/tmp/execjs20161001-3-1oidjycjs:3624:3384)
    at expr_list (/tmp/execjs20161001-3-1oidjycjs:3623:31548)
    at subscripts (/tmp/execjs20161001-3-1oidjycjs:3624:1461)
new JS_Parse_Error ((execjs):3623:11948)
js_error ((execjs):3623:12167)
croak ((execjs):3623:22038)
token_error ((execjs):3623:22175)
unexpected ((execjs):3623:22263)
expr_atom ((execjs):3623:31244)
maybe_unary ((execjs):3624:1752)
expr_ops ((execjs):3624:2523)
maybe_conditional ((execjs):3624:2615)
maybe_assign ((execjs):3624:3058)
maybe_assign ((execjs):3624:3232)
expression ((execjs):3624:3384)
expr_list ((execjs):3623:31548)
subscripts ((execjs):3624:1461)
/app/vendor/bundle/ruby/2.2.0/gems/execjs-2.7.0/lib/execjs/external_runtime.rb:39:in `exec'
/app/vendor/bundle/ruby/2.2.0/gems/execjs-2.7.0/lib/execjs/external_runtime.rb:21:in `eval'
/app/vendor/bundle/ruby/2.2.0/gems/execjs-2.7.0/lib/execjs/external_runtime.rb:46:in `call'
/app/vendor/bundle/ruby/2.2.0/gems/uglifier-3.0.2/lib/uglifier.rb:181:in `run_uglifyjs'
/app/vendor/bundle/ruby/2.2.0/gems/uglifier-3.0.2/lib/uglifier.rb:143:in `compile'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/uglifier_compressor.rb:52:in `call'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/uglifier_compressor.rb:28:in `call'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/processor_utils.rb:75:in `call_processor'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/processor_utils.rb:57:in `block in call_processors'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/processor_utils.rb:56:in `reverse_each'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/processor_utils.rb:56:in `call_processors'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/loader.rb:134:in `load_from_unloaded'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/loader.rb:60:in `block in load'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/loader.rb:317:in `fetch_asset_from_dependency_cache'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/loader.rb:44:in `load'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/cached_environment.rb:20:in `block in initialize'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/cached_environment.rb:47:in `yield'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/cached_environment.rb:47:in `load'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/base.rb:66:in `find_asset'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/base.rb:73:in `find_all_linked_assets'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/manifest.rb:142:in `block in find'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/legacy.rb:114:in `block (2 levels) in logical_paths'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/path_utils.rb:228:in `block in stat_tree'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/path_utils.rb:212:in `block in stat_directory'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/path_utils.rb:209:in `each'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/path_utils.rb:209:in `stat_directory'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/path_utils.rb:227:in `stat_tree'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/legacy.rb:105:in `each'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/legacy.rb:105:in `block in logical_paths'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/legacy.rb:104:in `each'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/legacy.rb:104:in `logical_paths'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-3.7.0/lib/sprockets/manifest.rb:140:in `find'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-rails-3.2.0/lib/sprockets/railtie.rb:50:in `each'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-rails-3.2.0/lib/sprockets/railtie.rb:50:in `map'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-rails-3.2.0/lib/sprockets/railtie.rb:50:in `precompiled_assets'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-rails-3.2.0/lib/sprockets/railtie.rb:35:in `asset_precompiled?'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-rails-3.2.0/lib/sprockets/railtie.rb:251:in `block (3 levels) in <class:Railtie>'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-rails-3.2.0/lib/sprockets/rails/helper.rb:359:in `call'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-rails-3.2.0/lib/sprockets/rails/helper.rb:359:in `precompiled?'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-rails-3.2.0/lib/sprockets/rails/helper.rb:363:in `raise_unless_precompiled_asset'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-rails-3.2.0/lib/sprockets/rails/helper.rb:337:in `digest_path'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-rails-3.2.0/lib/sprockets/rails/helper.rb:325:in `asset_path'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-rails-3.2.0/lib/sprockets/rails/helper.rb:102:in `block in resolve_asset_path'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-rails-3.2.0/lib/sprockets/rails/helper.rb:242:in `block in resolve_asset'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-rails-3.2.0/lib/sprockets/rails/helper.rb:241:in `each'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-rails-3.2.0/lib/sprockets/rails/helper.rb:241:in `detect'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-rails-3.2.0/lib/sprockets/rails/helper.rb:241:in `resolve_asset'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-rails-3.2.0/lib/sprockets/rails/helper.rb:101:in `resolve_asset_path'
/app/vendor/bundle/ruby/2.2.0/gems/sprockets-rails-3.2.0/lib/sprockets/rails/helper.rb:79:in `compute_asset_path'
/app/vendor/bundle/ruby/2.2.0/gems/actionview-5.0.0.1/lib/action_view/helpers/asset_url_helper.rb:144:in `asset_path'
/app/app/models/group.rb:11:in `<class:Group>'
/app/app/models/group.rb:1:in `<top (required)>'
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require'
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `block in require'
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require'
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:380:in `block in require_or_load'
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:37:in `block in load_interlock'
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies/interlock.rb:12:in `block in loading'
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/concurrency/share_lock.rb:117:in `exclusive'
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies/interlock.rb:11:in `loading'
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:37:in `load_interlock'
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:358:in `require_or_load'
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:511:in `load_missing_constant'
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:203:in `const_missing'
/app/db/seeds.rb:7:in `<top (required)>'
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:287:in `load'
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:287:in `block in load'
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:287:in `load'
/app/vendor/bundle/ruby/2.2.0/gems/railties-5.0.0.1/lib/rails/engine.rb:549:in `load_seed'
/app/vendor/bundle/ruby/2.2.0/gems/activerecord-5.0.0.1/lib/active_record/tasks/database_tasks.rb:268:in `load_seed'
/app/vendor/bundle/ruby/2.2.0/gems/activerecord-5.0.0.1/lib/active_record/railties/databases.rake:196:in `block (2 levels) in <top (required)>'
/app/vendor/bundle/ruby/2.2.0/gems/rake-11.3.0/exe/rake:27:in `<top (required)>'
Tasks: TOP => db:seed
(See full trace by running task with --trace)

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,结果发现我使用的是ES6箭头功能。问题是,我的生产环境使用的Sprockets版本与ES6不兼容。

我当时的解决方案是删除箭头功能。另一种方法是使用sprockets-es6sprockets的测试版之一。

答案 1 :(得分:1)

我有一个非常类似的问题,并且正如我提到的那样,因为我的Rails版本不支持ES6。升级链轮虽然对我有用。我最终要做的是升级uglifier,然后在我的production.rb中进行更改,

config.assets.js_compressor = :uglifier

config.assets.js_compressor = Uglifier.new(harmony: true)

然后我的预编译就像一个咒语。