J'ai donc utilisé Rails pendant un bon moment. Mais avec Rails 6, j'ai vraiment eu du mal à bouger. J'ai des gemmes personnalisées que j'utilise pour actifs et choses et je ne peux pas comprendre comment charger les fichiers js.
Ce à quoi je suis habitué
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 .
Mais cela ne se charge pas dans Rails 6 avec Webpacker. Je n'ai pas pu trouver de solution de base en ligne pour cela qui n'impliquait pas l'ajout de plusieurs fichiers js et lignes de code à l'application pour patcher une solution ensemble. Ce que j'ai essayé c'est
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")
Les actifs sont au bon endroit à l'intérieur de la gemme (donc la première version dans une application Rails 5 charge tout comme prévu). Je peux en ajouter certains avec du fil, mais je veux utiliser les fichiers réels de la gemme, non seulement obtenir bootstrap fonctionne, y a-t-il une solution simple à cela? J'ai également essayé d'ajuster le chemin dans le require
mais cela n'a pas fonctionné non plus .
Merci pour toute aide!
Vous devrez les obtenir directement à partir des fichiers gem.
Change ton application.js
à application.js.erb
et suivez la solution demir. Vous pouvez également utiliser le suivant pour importer plusieurs fichiers.
<% ['file_1', 'file_2'].each do |file| %>
import "<%= File.join(Gem.loaded_specs['my_gem'].full_gem_path, 'app', 'assets', 'javascripts', file) %>";
<% end %>