Jak se mohu zaregistrovat kompresor s ozubenými koly na příkazovém řádku?

0

Otázka

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.

debian ruby sprockets terser
2021-11-22 21:39:12
1

Nejlepší odpověď

0

Ok, tak pro další osobu, která vede do tohoto (zřejmě velmi vzácné) problém, potřebujete patch Sprockets::Environment.js_compressor=:

module Sprockets
  class Environment < Base
    def js_compressor=(compressor)
      register_compressor 'application/javascript', :terser, Terser::Compressor
      super
    end
  end
end
2021-11-23 18:54:16

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................