Come faccio a registrare un compressore con pignoni sulla riga di comando?

0

Domanda

Voglio usare Pignoni a riga di comando (con il ruby-pignoni pacchetto Debian), e voglio utilizzare Terser come il JavaScript compressore (perché Uglify non supporta ES6). Tutta la documentazione ho visto suggerisce che riesco a creare un file con il seguente codice:

require 'sprockets'
require 'terser'

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

per registrare Terser con pacco Pignoni, e poi ho virare su un --require FILE della mia chiamata sprockets da linea di comando. So che è l'elaborazione di script, perché posso aggiungere qualcosa di simile per il file:

Sprockets.js_compressor = :terser
puts Sprockets.js_compressor

e stampa Terser::Compressor come ci si potrebbe aspettare.

TUTTAVIA. Quando ho eseguito pignoni con qualcosa di simile a questo:

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

Ho la risposta:

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

Ho continuato a sbattere la testa contro questo problema per troppo tempo.

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

Migliore risposta

0

Ok, quindi per la prossima persona che corre in questo (a quanto pare molto raro) il problema, è necessario 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

In altre lingue

Questa pagina è in altre lingue

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