Chcę użyć gwiazdki w wierszu poleceń (z dodatkiem Debian ruby-gwiazdki) i chcę użyć Terser jako sprężarki JavaScript (bo Uglify nie obsługuje ES6). Cała dokumentacja, którą widziałem, zakłada się, że mogę utworzyć plik z następującym kodem:
require 'sprockets'
require 'terser'
Sprockets.register_compressor 'application/javascript', :terser, Terser::Compressor
aby zarejestrować Terser za pomocą gwiazdek, a następnie przypnę --require FILE
na moje wezwanie do sprockets
w wierszu polecenia. Ja wiem, że on przetwarza skrypt, bo mogę dodać coś takiego do pliku:
Sprockets.js_compressor = :terser
puts Sprockets.js_compressor
i drukuje Terser::Compressor
jak można się było spodziewać.
jednak. Gdy uruchamiam gwiazdki z czymś podobnym:
sprockets --require ./register_compressor.rb --js-compressor=terser ...
Dostaję odpowiedź:
/usr/lib/ruby/vendor_ruby/sprockets/compressing.rb:63:in `js_compressor=':
unknown compressor: terser (Sprockets::Error)
Zbyt długo uderzając głową o ten problem.