如何在Rails 6应用程序中使用Gem中的js文件

Roc*_*ice 12 ruby-on-rails webpacker ruby-on-rails-6

因此,我已经使用Rails已有一段时间了。但是使用Rails 6时,我真的很努力地前进。我有一些用于资产和事物的自定义gem,但我不知道如何加载js文件。

我习惯了

application.js

//= require activestorage
//= require jquery-3.3.1.min
//= require popper.min
//= require bootstrap
//= require mdb
//= require wysiwyg
//= require addons/pickr.min
//= require modules/buttons
//= require modules/cards
//= require modules/waves
//= require activestorage
//= require turbolinks
//= require_tree .
Run Code Online (Sandbox Code Playgroud)

但这不会在Webpacker的Rails 6中加载。我无法为此找到在线的基本解决方案,该解决方案没有涉及向应用程序添加多个js文件和代码行以将解决方案修补在一起。我尝试过的是

app / javascript / packs / application.js

require("@rails/ujs").start()
require("turbolinks").start()
require ("jquery-3.3.1.min").start()
require ("popper.min").start()
require ("bootstrap").start()
require ("mdb").start()
require ("wysiwyg").start()
require ("addons/pickr.min").start()
require ("modules/buttons").start()
require ("modules/cards").start()
require ("modules/waves").start()
require("@rails/activestorage").start()
require("channels")
Run Code Online (Sandbox Code Playgroud)

资产位于gem内的正确位置(因此,rails 5应用程序中的第一个版本确实按预期加载了所有内容)。我可以在yarn中添加其中的一些,但是我想使用gem中的实际文件,而不仅仅是启动引导程序,有没有直接的解决方案?我也尝试过调整中的路径,require但这也不起作用。

谢谢你的帮助!

dem*_*mir 3

需要通过gem导入js文件。也许这可以帮助你:

import jQuery from 'jquery'

<%= File.read(File.join(Gem.loaded_specs['bla_bla_gem'].full_gem_path, 'lib', 'assets', 'javascripts', 'bla_bla.js')) %>
Run Code Online (Sandbox Code Playgroud)

相关问题评论