stylesheet_pack_tag不会生成任何输出,尽管 CSS 文件存在于 packs 目录中



随着 Rails 的最新更新,我们的 VueJS 客户端应用程序的stylesheet_pack_tag停止产生输出。Webpacker确实在/public/packs文件夹中生成CSS文件(在JS文件和其他文件夹旁边)。javascript_pack_tag语句工作正常,但不知何故,stylesheet_pack_tag仍然失效。我可能忽略了什么?

一些调试让我得到了我一直在寻找的答案。事实证明,以前在Webpacker 3.2.0gem 中,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.Xgem 中,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 点)以及本段。

相关内容

  • 没有找到相关文章

最新更新