Chci použít ozubená kola na příkazovém řádku (s ruby-řetězová kola Debian package), a chci použít Terser jako JavaScript kompresoru (protože Zohyzdit nemá podporu ES6). Všechny dokumenty jsem viděl naznačuje, že můžu vytvořit soubor s následujícím kódem:
require 'sprockets'
require 'terser'
Sprockets.register_compressor 'application/javascript', :terser, Terser::Compressor
registrovat Terser s ozubenými koly, a pak jsem připínáček na --require FILE
na mé volání k sprockets
na příkazovém řádku. Vím, že je to zpracování, scénář, protože jsem se může přidat něco takového souboru:
Sprockets.js_compressor = :terser
puts Sprockets.js_compressor
a to vytiskne Terser::Compressor
jak by se dalo očekávat.
NICMÉNĚ. Když jsem se spustit řetězová kola s o něco podobného:
sprockets --require ./register_compressor.rb --js-compressor=terser ...
Jsem dostal odpověď:
/usr/lib/ruby/vendor_ruby/sprockets/compressing.rb:63:in `js_compressor=':
unknown compressor: terser (Sprockets::Error)
Byl jsem bouchal hlavou proti tento problém na cestě příliš dlouho.