Como faço para registrar um compressor com engrenagens na linha de comando?

0

Pergunta

Eu quero usar Engrenagens na linha de comando (com o ruby-engrenagens pacote Debian), e eu quero usar Suscinto como o JavaScript compressor (porque Uglify não suporta ES6). Toda a documentação que eu vi sugere que eu posso criar um arquivo com o código a seguir:

require 'sprockets'
require 'terser'

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

para registrar Suscinto com rodas Dentadas e, em seguida, eu aderência em --require FILE a minha chamada para sprockets na linha de comando. Eu sei que é o processamento do script, porque eu posso adicionar algo como isso para o arquivo:

Sprockets.js_compressor = :terser
puts Sprockets.js_compressor

e imprime Terser::Compressor como se poderia esperar.

No ENTANTO. Quando eu executo engrenagens com algo semelhante a isto:

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

Recebo a resposta:

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

Eu estive batendo a minha cabeça contra esse problema por muito tempo.

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

Melhor resposta

0

Ok, então, para a próxima pessoa que corre para isso (aparentemente muito raro) problema, você precisa de 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

Em outros idiomas

Esta página está em outros idiomas

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