Closed
Conversation
….e. "assets") and doing asset precompilation.
johnnyshields
commented
Aug 7, 2025
johnnyshields
commented
Aug 8, 2025
| def initialize(options = {}) | ||
| @options = options.dup | ||
| @options[:comments] ||= :none | ||
| @options.merge!(::Rails.application.config.assets.terser.to_h) if defined?(::Rails) |
Contributor
Author
There was a problem hiding this comment.
There is probably a better way to do this line. Need to investigate how Sass achieves a similar thing.
Member
|
There is no need for this gem to include any code if the terser gem can already do that for us. Thank you for the pull request |
Contributor
Author
|
@rafaelfranca please reconsider opening this. Without this PR, you can't do a drop-in upgrade from Uglifier: (Refer to the PR description.) This is contrary to user expectations. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR ports https://github.com/ahorek/terser-ruby/blob/master/lib/terser/compressor.rb (MIT licensed) to this gem, to add first-class support for Terser in the same manner that Uglifier, YUI, etc. are supported.
Issue raised in Terser gem to notify the maintainers of this port: ahorek/terser-ruby#65
Motivation
Recently, I replaced the Uglifier with Terser in my Gemfile and Rails config, expecting it to be a drop in replacement:
When I deployed to staging, the process errored during bootstrapping because constant
Tersercould not be found. In a nutshell, the reason why Uglifier works and Terser does not is becauseSprockets::UglifierCompressorexists in Sprockets lib and does not require theuglifiergem to already be loaded, while the Terser equivalent is loaded by a Railtie in thetersergem which does require loadingtersergem first.