stylesheet_pack_tag не генерирует никакого вывода, хотя CSS-файл присутствует в каталоге пакетов - PullRequest
0 голосов
/ 11 июля 2019

С недавним обновлением Rails stylesheet_pack_tag нашего клиентского приложения VueJS перестало выдавать вывод.Webpacker создает файл CSS в папке /public/packs (рядом с файлом JS и другими).Оператор javascript_pack_tag работает нормально, но каким-то образом stylesheet_pack_tag остается несуществующим.Что я могу пропустить?

1 Ответ

0 голосов
/ 11 июля 2019

Некоторая отладка дала мне ответ, который я искал. Оказывается, ранее в Webpacker 3.2.0 gem stylesheet_pack_tag выглядит так:

def stylesheet_pack_tag(*names, **options)
  unless Webpacker.dev_server.running? && Webpacker.dev_server.hot_module_replacing?
    stylesheet_link_tag(*sources_from_pack_manifest(names, type: :stylesheet), **options)
  end
end

В новом Webpacker 4.0.X gem stylesheet_pack_tag выглядит следующим образом:

def stylesheet_pack_tag(*names, **options)
  if current_webpacker_instance.config.extract_css?
    stylesheet_link_tag(*sources_from_manifest_entries(names, type: :stylesheet), **options)
  end
end

И в самом начале виновник: это утверждение работает только тогда, когда webpacker.yml содержит extract_css: true, вот так:

default: &default
  # Extract and emit a css file
  extract_css: true

Конечно, вы также можете установить это на уровне разработки, тестирования или производства.

Оглядываясь назад, Обновление документов Webpacker 3.5 до 4 уже упоминало об этом изменении (пункт 6 в первом абзаце), а также в этом абзаце .

...