Ako sa môžem registrovať kompresor s prevodov na príkazový riadok?

0

Otázka

Chcem použiť Prevodov v príkazovom riadku (s ruby-reťazové kolesá Debian balíček), a chcem použiť Terser ako JavaScript kompresora (pretože Uglify nepodporuje ES6). Všetky doklady som videl naznačuje, že môžem vytvoriť súbor s nasledujúcim kódom:

require 'sprockets'
require 'terser'

Sprockets.register_compressor 'application/javascript', :terser, Terser::Compressor

zaregistrovať Terser s Prevodov, a potom som sa nehne na --require FILE na moje pozvanie k sprockets v príkazovom riadku. Viem, že je to spracovanie skriptu, pretože môžem pridať niečo takého súboru:

Sprockets.js_compressor = :terser
puts Sprockets.js_compressor

a to výtlačkov Terser::Compressor ako by človek očakával.

VŠAK. Keď som spustiť reťazové kolesá s niečo podobné tomuto:

sprockets  --require ./register_compressor.rb  --js-compressor=terser ...

Dostanem odpoveď:

/usr/lib/ruby/vendor_ruby/sprockets/compressing.rb:63:in `js_compressor=': 
unknown compressor: terser (Sprockets::Error)

Bol som búchanie hlavou proti tento problém pre príliš dlho.

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

Najlepšiu odpoveď

0

Ok, tak na ďalší človek, ktorý sa spúšťa do tejto (zrejme veľmi zriedkavé) problém, potrebujete 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 iných jazykoch

Táto stránka je v iných jazykoch

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