所以我正在使用rails
和webpack
来构建应用程序,而我摆脱了assets pipeline
和sprockets
。到目前为止,没有什么例外。
我知道webpack
会抛出生活在app/javascript/packs
中的所有JavaScript文件,并且无论实际加载了哪个views
,浏览器都将全部执行它们,这会导致错误。
我要做的是使浏览器为特定的JavaScript
执行特定的view
文件。
示例:如果视图为foo.html.erb
,则浏览器仅在调用foo.js
时执行驻留在~/app/javascript/packs
中的JavaScript foo.html.erb
。
请记住,我使用的是webpack,因此在我的情况下,放置助手<%= javascript_include_tag : 'foo'%>
将不起作用,因为我使用的是webpack而不是assets pipeline
是否有一种简单直接的方法?
答案 0 :(得分:0)
您可以在https://github.com/rails/webpacker并使用帮助程序来阅读文档:
<%= javascript_pack_tag 'application' %>
<%= stylesheet_pack_tag 'application' %>
示例。您在foo.js
创建一个~/app/javascript/packs
您可以在视图中调用此文件
<%= javascript_pack_tag 'foo' %>