Я хочу использовать звездочки в командной строке (с пакетом Debian ruby-звездочки), и я хочу использовать Terser в качестве компрессора JavaScript (потому что Uglify не поддерживает ES6). Вся документация, которую я видел, предполагает, что я могу создать файл со следующим кодом:
require 'sprockets'
require 'terser'
Sprockets.register_compressor 'application/javascript', :terser, Terser::Compressor
чтобы зарегистрировать Terser с помощью звездочек, а затем я прикрепляю --require FILE
на мой призыв к sprockets
в командной строке. Я знаю, что он обрабатывает сценарий, потому что я могу добавить что-то подобное в файл:
Sprockets.js_compressor = :terser
puts Sprockets.js_compressor
и он печатает Terser::Compressor
как и следовало ожидать.
однако. Когда я запускаю звездочки с чем-то подобным:
sprockets --require ./register_compressor.rb --js-compressor=terser ...
Я получаю ответ:
/usr/lib/ruby/vendor_ruby/sprockets/compressing.rb:63:in `js_compressor=':
unknown compressor: terser (Sprockets::Error)
Я слишком долго бился головой об эту проблему.