Sprockets //= require with jsbundle -rails (esbuild) -如何包含由g



基本上,正如标题所说。我有一个gem安装,给我一些JS使用。在我使用链轮+资产管道之前,这不是一个问题。

现在,我迁移到jsbundle -rails,完全不知道如何包含gem提供的JS代码。我花了差不多10个小时找,到目前为止还没有找到。

请帮帮我。

gem必须有一个可以通过yarn/npm安装的js包,以便它可以在application.js中导入。如果没有,你可以设置一个js文件只由链轮处理,就像以前一样。

添加另一个javascript入口点,跳过esbuild,只由链轮处理。

更新清单:

// app/assets/config/manifest.js
//= link custom.js

添加//= require指令:

// app/assets/javascripts/custom.js
//= require gem_javascript

添加到layout:

<!-- app/views/layouts/application.html.erb -->
<%= javascript_include_tag "application", "custom", "data-turbo-track": "reload", defer: true %>

或者,代替使用//= require添加gem_javascriptjavascript_include_tag:

<%= javascript_include_tag "application", "gem_javascript", "data-turbo-track": "reload", defer: true %>

可能需要将其添加到manifest中以进行预编译:

// app/assets/config/manifest.js
//= link gem_javascript

最新更新