Komut satırında Zincir dişlileri kullanmak istiyorum (ruby-sprockets Debian paketi ile) ve JavaScript kompresörü olarak Terser kullanmak istiyorum (çünkü Uglify es6'yı desteklemiyor). Gördüğüm tüm belgeler, aşağıdaki kodla bir dosya oluşturabileceğimi gösteriyor:
require 'sprockets'
require 'terser'
Sprockets.register_compressor 'application/javascript', :terser, Terser::Compressor
terser'i Dişlilere kaydettirmek için ve sonra bir --require FILE
benim çağrıma sprockets
komut satırında. Komut dosyasını işlediğini biliyorum, çünkü dosyaya böyle bir şey ekleyebilirim:
Sprockets.js_compressor = :terser
puts Sprockets.js_compressor
ve yazdırıyor Terser::Compressor
olarak düşünülebilir.
ancak. Dişlileri buna benzer bir şeyle çalıştırdığımda:
sprockets --require ./register_compressor.rb --js-compressor=terser ...
Cevabı alıyorum :
/usr/lib/ruby/vendor_ruby/sprockets/compressing.rb:63:in `js_compressor=':
unknown compressor: terser (Sprockets::Error)
Çok uzun zamandır kafamı bu soruna çarpıyorum.