Je veux utiliser les Pignons à la ligne de commande (avec l'ruby-pignons paquet Debian), et je veux utiliser Terser que le JavaScript compresseur (parce que Uglify ne prend pas en charge ES6). Toute la documentation que j'ai vu suggère que je peux créer un fichier avec le code suivant:
require 'sprockets'
require 'terser'
Sprockets.register_compressor 'application/javascript', :terser, Terser::Compressor
pour vous inscrire Terser avec les Pignons, puis je virer de bord sur les --require FILE
à mon appel à sprockets
sur la ligne de commande. Je sais que c'est le traitement du script, parce que je peux ajouter quelque chose comme ceci dans le fichier:
Sprockets.js_compressor = :terser
puts Sprockets.js_compressor
et il imprime Terser::Compressor
comme on pourrait s'y attendre.
CEPENDANT. Quand je lance pignons avec quelque chose de similaire à ceci:
sprockets --require ./register_compressor.rb --js-compressor=terser ...
Je reçois la réponse:
/usr/lib/ruby/vendor_ruby/sprockets/compressing.rb:63:in `js_compressor=':
unknown compressor: terser (Sprockets::Error)
J'ai été frapper ma tête contre ce problème depuis trop longtemps.