¿Cómo puedo registrar un compresor con piñones en la línea de comandos?

0

Pregunta

Quiero utilizar Piñones en la línea de comandos (con el rubí-piñones de paquetes de Debian), y quiero usar Tersa como la de JavaScript compressor (porque Uglify no admite ES6). Toda la documentación que he visto sugiere que puedo crear un archivo con el siguiente código:

require 'sprockets'
require 'terser'

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

para registrar el Terser con Piñones, y luego me cobra un --require FILE a mi llamada sprockets en la línea de comandos. Sé que es el procesamiento de la secuencia de comandos, porque puedo agregar algo como esto para el archivo:

Sprockets.js_compressor = :terser
puts Sprockets.js_compressor

y se imprime Terser::Compressor como uno podría esperar.

Sin EMBARGO. Cuando ejecuto piñones con algo similar a esto:

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

Tengo la respuesta:

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

He estado golpeando mi cabeza contra este problema por mucho tiempo.

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

Mejor respuesta

0

Ok, así que para la próxima persona que se ejecuta en este (al parecer muy raro) problema, usted necesita parche 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

En otros idiomas

Esta página está en otros idiomas

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