Open Sega100500 opened 2 years ago
Some refer to the need to use a terser
, but terser
does'nt work properly at this case too.
Sorry I found this issue while looking into something else about terser/rails on Google. What's the problem here exactly? rails assets:precompile
generates the minified JS when the command is explicitly executed on terminal? Why uglifier is running on application runtime anyway? So weird. Maybe it shouldn't run at all. Uglifier devs should fix that.
Does the minified js file work when you remove uglifier
gem and rebooted the application?
@dave105010
Because I don't use rails assets:precompile
any time but I use config.assets.compile = true
in config file (see the issue).
In development mode, everything works fine until :uglifier
is used. The JS code and CSS styles has nothing to do with it at all.
+1 Also seeing this exact same issue when upgrading Bootstrap in both Development and Production
I'm seeing this when I run assets:precompile
:
rails aborted!
Uglifier::Error:
/Users/my-username/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/uglifier-4.2.0/lib/uglifier.rb:293:in `parse_result'
/Users/my-username/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/uglifier-4.2.0/lib/uglifier.rb:221:in `run_uglifyjs'
/Users/my-username/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/uglifier-4.2.0/lib/uglifier.rb:166:in `compile'
The result
parameter in parse_result
(which I found by adding some debug statements) is {"error"=>{}}
# gem 'uglifier', '~> 4.2'
gem 'terser', '~> 1.1', '>= 1.1.12'
# config.assets.js_compressor = Uglifier.new(harmony: true)
config.assets.js_compressor = :terser
@itsalongstory
terser
have same problem. It' not solution!
terser
have same problem. It' not solution!
So, how did you get Uglifier to handle Bootstrap 5.2 correctly now?
@itsalongstory No way! I don't see a solution, so I stayed on Bootstrap v5.1.3 for now. The fact is that technology is advancing, and RoR is no longer keeping up with them.
terser
have same problem. It' not solution!
Can you describe a little bit about the problems you've encountered with terser
?
@itsalongstory
Same problem as uglifier
- not work correctly when I use Bootstrap 5.2
Same problem as
uglifier
- not work correctly when I use Bootstrap 5.2
In my project, uglifier does not work with Bootstrap 5.2, but terser works fine with Bootstrap 5.2
No way! I don't see a solution, so I stayed on Bootstrap v5.1.3 for now. The fact is that technology is advancing, and RoR is no longer keeping up with them.
I think we should first understand why it's blowing up. It's not clear to me if the issue is in uglifier or in Bootstrap.
No way! I don't see a solution, so I stayed on Bootstrap v5.1.3 for now. The fact is that technology is advancing, and RoR is no longer keeping up with them.
I think we should first understand why it's blowing up. It's not clear to me if the issue is in uglifier or in Bootstrap.
I think the problem is uglifier doesn't full support ES6, and Bootstrap 5.2 has some new ES6 code.
@itsalongstory Ah, ok - that explains it.
The README does say UglifyJS only works with ES5. If you need to compress ES6, [ruby-terser](https://github.com/ahorek/terser-ruby) is a better option.
I switched to terser and that solved my problem, so I think that's the resolution for this issue. If terser doesn't work for you I would suggest opening an issue against the terser repo.
I faced a similar problem. And I solved the problem by switching to terser. Thanks.
@bekkou68 me too, thanks.
Ruby 3.1.2 Ruby on Rails 7.0.3.1 gem Uglifier 4.2.0 Third party library: Bootstrap 5.2 ( new version 5.2 released )
With bootstrap 5.1.3 (previous version) all works fine!
app/assets/config/manifest.js
:in view stylesheets and javascripts are attached via
stylesheet_link_tag
andjavascript_include_tag
config/environments/production.rb
:log/production.log
:All other compressors are works with errors in this case