Cum pot înregistra un compresor cu pinioane pe linia de comandă?

0

Problema

Vreau să folosesc Pinioanele de la linia de comandă (cu ruby-pinioane pachet Debian), și vreau să folosesc Terser ca JavaScript compresor (pentru că Urâți nu are suport ES6). Toate documentele am văzut sugerează că am putea crea un fișier cu următorul cod:

require 'sprockets'
require 'terser'

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

să se înregistreze Terser cu Pinioane, și atunci eu tac pe un --require FILE la chemarea mea la sprockets la linia de comandă. Știu că e de prelucrare a script-ul, pentru că pot adăuga ceva de genul asta la dosar:

Sprockets.js_compressor = :terser
puts Sprockets.js_compressor

și se imprimă Terser::Compressor cum s-ar aștepta.

Cu toate ACESTEA. Atunci când am rula pinioane cu ceva similar cu asta:

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

Am răspuns:

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

Am fost cu capul această problemă pentru prea mult timp.

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

Cel mai bun răspuns

0

Ok, deci pentru următoarea persoană care conduce în acest (aparent foarte rare) problemă, aveți nevoie pentru a patch-uri 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

În alte limbi

Această pagină este în alte limbi

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