uglifier
uglifier copied to clipboard
Uglifier::Error: Unexpected token: punc (.)
I know there there are tons of solution for this issue and I've tried all of them and still facing this issue while it's trying to compile assets.
here is the error logs:
[4/5] Linking dependencies...
warning " > [email protected]" has unmet peer dependency "webpack@^4.0.0".
warning " > [email protected]" has unmet peer dependency "webpack@^4.37.0 || ^5.0.0".
warning "webpack-dev-server > [email protected]" has unmet peer dependency "webpack@^4.0.0 || ^5.0.0".
[5/5] Building fresh packages...
Done in 3.02s.
rake aborted!
Uglifier::Error: Unexpected token: punc (.)
--
3527 })
3528 };
3529 }
3530 }
3531
3532 customElements.define("turbo-cable-stream-source", TurboCableStreamSourceElement);
3533
3534 function overrideMethodWithFormmethod({detail: {formSubmission: {fetchRequest: fetchRequest, submitter: submitter}}}) {
=> const formMethod = submitter?.formMethod;
3536 if (formMethod && fetchRequest.body.has("_method")) {
3537 fetchRequest.body.set("_method", formMethod);
3538 }
3539 }
3540
3541 addEventListener("turbo:submit-start", overrideMethodWithFormmethod);
3542
3543 var adapters = {
==
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/uglifier-4.2.0/lib/uglifier.rb:291:in `parse_result'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/uglifier-4.2.0/lib/uglifier.rb:221:in `run_uglifyjs'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/uglifier-4.2.0/lib/uglifier.rb:166:in `compile'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/compressing.rb:65:in `block in js_compressor='
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/legacy_proc_processor.rb:31:in `call'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:75:in `call_processor'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:57:in `block in call_processors'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:56:in `reverse_each'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:56:in `call_processors'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:134:in `load_from_unloaded'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:60:in `block in load'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:317:in `fetch_asset_from_dependency_cache'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:44:in `load'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/cached_environment.rb:20:in `block in initialize'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/cached_environment.rb:47:in `load'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/base.rb:66:in `find_asset'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/base.rb:73:in `find_all_linked_assets'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/manifest.rb:134:in `block in find'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/manifest.rb:133:in `each'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/manifest.rb:133:in `find'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/manifest.rb:186:in `compile'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/task.rb:67:in `block (3 levels) in define'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/rake/sprocketstask.rb:147:in `with_logger'
/layers/heroku_ruby/gems/vendor/bundle/ruby/2.7.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/task.rb:66:in `block (2 levels) in define'
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
!
! Precompiling assets failed.
!
ERROR: failed to build: exit status 1
Error: errors were encountered with one or more resources
In my project's production.rb
I've defined this to enable ES6/harmony:
config.assets.js_compressor = Uglifier.new(harmony: true)
Not sure how to resolve this issue. Any help will be appreciable 🙏
Seems replacing with terser with ES6 support has been the repeated suggestion here.
This seems to be caused by Turbo having es2020? features in it's gems' /app/assets/javascripts/turbo.js
. I've hit the same problem and am not sure how to proceed.
Weirdly enough the exact syntax is not in the source code of https://github.com/hotwired/turbo-rails
Here's the fix in turbo-rails
https://github.com/hotwired/turbo-rails/pull/337/files
Use main
branch version until >= v1.1.2
comes out:
gem "turbo-rails", github: 'hotwired/turbo-rails'
Edit or more safely with:
gem "turbo-rails", github: 'hotwired/turbo-rails', ref: '37be2c6c39c417ddd5f12dcd494fb232220b0d08'