Jak zarejestrować kompresor z gwiazdkami w wierszu polecenia?

0

Pytanie

Chcę użyć gwiazdki w wierszu poleceń (z dodatkiem Debian ruby-gwiazdki) i chcę użyć Terser jako sprężarki JavaScript (bo Uglify nie obsługuje ES6). Cała dokumentacja, którą widziałem, zakłada się, że mogę utworzyć plik z następującym kodem:

require 'sprockets'
require 'terser'

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

aby zarejestrować Terser za pomocą gwiazdek, a następnie przypnę --require FILE na moje wezwanie do sprockets w wierszu polecenia. Ja wiem, że on przetwarza skrypt, bo mogę dodać coś takiego do pliku:

Sprockets.js_compressor = :terser
puts Sprockets.js_compressor

i drukuje Terser::Compressor jak można się było spodziewać.

jednak. Gdy uruchamiam gwiazdki z czymś podobnym:

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

Dostaję odpowiedź:

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

Zbyt długo uderzając głową o ten problem.

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

Najlepsza odpowiedź

0

Tak więc, do następnego człowieka, który zmierzy się z tej (podobno bardzo rzadkiej) problem trzeba rozwiązać 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

W innych językach

Ta strona jest w innych językach

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