Как установить jQuery и bootstrap в приложении rails 7 с помощью esbuild (без webpacker)
спросил
Изменено 3 месяца назад
Просмотрено 15 тысяч раз
Я пытаюсь создать приложение для рельсов, установив bootstrap и jQuery. Сначала я попытался создать с помощью
новое имя рельсов - начальная загрузка css
Но это не работает. Так что я сделал это с ним вручную.
Я также пытался использовать esbuild, но в случае печати в консоли он не работает. Вот ссылка на YouTube, которую я пробовал.
Итак, вопрос в том, как установить jQuery в приложение rails 7 без использования веб-упаковщика
Проблема в том, что теперь начальная загрузка и JavaScript работают, но не jQuery.
Вот мои файлы выглядят так:
// app/assets/stylesheet/application.scss @import "бутстрап-звездочки"; @import "загрузочная";
// приложение/javascript/application.js //= требуется JQuery //= требуется jquery_ujs //= требуется bootstrap.min // требуются турболинки //= требуемое_дерево.
# Gemfile гем 'бутстрап-дерзость', '~> 3.3.7' гем 'jquery-rails' драгоценный камень «sass-rails»
После того, как все это создало контроллер и добавило базовую загрузку, Коды JavaScript и jquery для проверки, работают они или нет, но и JavaScript, и загрузчик работают. jQuery работает при добавлении ссылки ajax.googleapi на HTML-страницу. Но это не очень хорошая практика.
Итак, вопрос в том, как установить jQuery без использования веб-упаковщика в приложение для рельсов 7.
А также пытался установить с помощью
rails новое приложение -j esbuild --css bootstrap пряжа добавить jqueryНо в моем случае это все еще не работает.
У кого-нибудь есть решение- jquery
- ruby-on-rails
- ruby-on-rails-7
1
А также пытался установить с помощью
рельсы новое приложение -j esbuild --css bootstrap пряжа добавить jquery
Правильно начинаешь! Вам просто нужны дополнительные действия
Добавить в ваш app/javascript/application.js перед библиотеками JQuery или скриптами JQuery
import './add_jquery'
И создайте файл app/javascript/add_jquery.js :
импортируйте jquery из 'jquery' окно.jQuery = jquery окно. $ = jquery
Первая строка импортирует библиотеку в локальный файл ( add_jquery.js )
Вторая и третья строки делают эту библиотеку глобальной
Вот и все
рэп-дерзость драгоценных камня
3
Вот чистое решение, основанное на этом руководстве по начальной загрузке.
Я использовал тот же принцип, чтобы добавить jquery. Sprockets используется для файлов css, а importmaps — для js. Webpacker, node, yarn и т.п. не нужны.
В Gemfile :
gem "jquery-rails" драгоценный камень "бутстрап" драгоценный камень "sassc-рельсы"
В app/assets/stylesheets/application.scss (обратите внимание, что суффикс файла должен быть .scss , а не .css ; при необходимости измените суффикс):
@import "bootstrap";
В config/initializers/assets.rb :
Rails.application.config.assets.precompile += %w(jquery.min.js jquery_ujs.js bootstrap.min.js popper.js)
В config/importmap.rb :
прикрепить "jquery", к: "jquery.min.js", предварительная загрузка: true прикрепить "jquery_ujs", к: "jquery_ujs.js", предварительная загрузка: true прикрепить "popper", к: "popper.js", предварительная загрузка: true прикрепить "bootstrap", к: "bootstrap.min.js", предварительная загрузка: true
В app/javascript/application.js :
импортировать "jquery" импортировать "jquery_ujs" импортный "поппер" импортировать "бутстрап"
Установите драгоценные камни, удалите старые активы, перезапустите сервер, и все должно заработать.
4
Мне удалось заставить его работать. Я использую следующие версии ruby и rails:
// Gemfile рубин '3.1.3' драгоценный камень «рельсы», «~>7.0.4»
Я использую следующие драгоценные камни для добавления Bootstrap (которые позволяют мне вызывать стандартные классы начальной загрузки и переменные цвета в моих файлах .scss):
// Gemfile гем 'бутстрап-дерзость', '~> 3.4', '>= 3.4.1' гем 'bootstrap-will_paginate', '~> 1.0.0'
Со следующей конфигурацией application.js:
// javascript/application.js
импортировать { Turbo } из "@hotwired/turbo-rails"
Turbo.
session.drive = правда
импортировать "контроллеры"
импортировать jquery
импортировать * как бутстрап из 'bootstrap'
window.bootstrap = начальная загрузка
Использование таблиц стилей .scss (включая переименование application.css в application.scss) и добавление следующего импорта в мою таблицу стилей custom.scss, которая использует стандартные классы начальной загрузки и цветовые переменные:
// custom.scss @import "бутстрап-звездочки"; @import "загрузочная";
А также добавить следующие строки в importmap.rb:
// config/importmap.rb прикрепить "jquery", к: "https://code.jquery.com/jquery-3.6.0.min.js", предварительная загрузка: true прикрепить "popper", к: "popper.js", предварительная загрузка: true прикрепить "bootstrap", к: "bootstrap.min.js", предварительная загрузка: true
И следующая строка в manifest.js
// config/manifest.js //= ссылка bootstrap.min.js
Обратите внимание, что (насколько я понимаю) Rails 7 работает без wepback (и без необходимости использовать что-то вроде esbuild) благодаря следующим драгоценным камням, которые, как мне кажется, установлены по умолчанию (но также перечислены в моем Gemfile):
// Gemfile gem 'звездочки-рельсы', '~> 3.4', '>= 3.4.2' gem 'importmap-rails', '~> 1.1', '>= 1.1.5' драгоценный камень «стимул-рельсы» драгоценный камень «турбо-рельсы» драгоценный камень 'will_paginate', '~> 3.1.8'
Столкнулся с той же проблемой. Что я сделал на основе этой ссылки
В Gemfile добавить gem
gem 'jquery-rails'
В application.js добавьте
импорт "jquery" импортировать "jquery_ujs"
В config/importmap.rb
прикрепить "jquery", к: "jquery.min.js", предварительная загрузка: true прикрепить "jquery_ujs", к: "jquery_ujs.js", предварительная загрузка: true
Вот моя ссылка на репозиторий github, где я реализовал базовый код для jQuery
1
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Ruby on Rails Установка JQuery
Я создаю новый проект, я просто следую инструкциям шаг за шагом, чтобы установить jquery в свой проект, но это не работает.
Я добавляю эти две строки в свой вид.
Проект\Gemfile
источник 'https://rubygems.org'
git_source(:github) сделать |repo_name|
repo_name = "#{repo_name}/#{repo_name}", если только repo_name.include?("/")
"https://github.com/#{repo_name}.git"
конец
# Вместо этого добавьте Edge Rails: gem 'rails', github: 'rails/rails'
гем 'рельсы', '~> 5.1.4'
# Использовать sqlite3 в качестве базы данных для Active Record
драгоценный камень 'sqlite3'
# Использовать Puma в качестве сервера приложений
гем 'пума', '~> 3.7'
# Используйте SCSS для таблиц стилей
гем 'sass-rails', '~> 5.0'
# Используйте Uglifier в качестве компрессора для ресурсов JavaScript
драгоценный камень 'углификатор', '>= 1.3.0'
# См. https://github.
com/rails/execjs#readme для получения дополнительной информации о поддерживаемых средах выполнения.
# gem 'therubyracer', платформы: :ruby
# Используйте CoffeeScript для активов и представлений .coffee
gem 'coffee-rails', '~> 4.2'
# Turbolinks ускоряет навигацию по вашему веб-приложению. Подробнее: https://github.com/turbolinks/turbolinks
гем 'турболинки', '~> 5'
# Легко создавайте JSON API. Подробнее: https://github.com/rails/jbuilder
гем 'jbuilder', '~> 2.5'
# Используйте адаптер Redis для запуска Action Cable в производственной среде.
# gem 'redis', '~> 3.0'
# Использовать ActiveModel has_secure_password
# гем 'bcrypt', '~> 3.1.7'
# Используйте Capistrano для развертывания
# gem 'capistrano-rails', group: :development
группа :разработка, :тест делать
# Вызовите 'byebug' в любом месте кода, чтобы остановить выполнение и получить консоль отладчика
gem 'byebug', платформы: [:mri, :mingw, :x64_mingw]
# Добавляет поддержку системного тестирования Capybara и драйвера селена.
драгоценный камень 'капибара', '~> 2.13'
драгоценный камень «селен-вебдрайвер»
конец
группа :развитие делать
# Получите доступ к консоли IRB на страницах исключений или с помощью любого места в коде.
gem 'веб-консоль', '>= 3.3.0'
конец
# Windows не включает файлы zoneinfo, поэтому свяжите гем tzinfo-data
гем 'tzinfo-data', платформы: [:mingw, :mswin, :x64_mingw, :jruby]
гем 'jquery-rails'
драгоценный камень 'mysql2'
Проект\приложение\активы\javascripts\application.js
// Это файл манифеста, который будет скомпилирован в application.js, в который будут включены все файлы // перечислено ниже. // // Любой файл JavaScript/Coffee в этом каталоге, lib/assets/javascripts или любой плагин // Здесь можно сослаться на каталог vendor/assets/javascripts, используя относительный путь. // // Не рекомендуется добавлять код прямо сюда, но если вы это сделаете, он появится внизу // скомпилированный файл.


min.js", предварительная загрузка: true
session.drive = правда
импортировать "контроллеры"
импортировать jquery
импортировать * как бутстрап из 'bootstrap'
window.bootstrap = начальная загрузка

com/rails/execjs#readme для получения дополнительной информации о поддерживаемых средах выполнения.
# gem 'therubyracer', платформы: :ruby
# Используйте CoffeeScript для активов и представлений .coffee
gem 'coffee-rails', '~> 4.2'
# Turbolinks ускоряет навигацию по вашему веб-приложению. Подробнее: https://github.com/turbolinks/turbolinks
гем 'турболинки', '~> 5'
# Легко создавайте JSON API. Подробнее: https://github.com/rails/jbuilder
гем 'jbuilder', '~> 2.5'
# Используйте адаптер Redis для запуска Action Cable в производственной среде.
# gem 'redis', '~> 3.0'
# Использовать ActiveModel has_secure_password
# гем 'bcrypt', '~> 3.1.7'
# Используйте Capistrano для развертывания
# gem 'capistrano-rails', group: :development
группа :разработка, :тест делать
# Вызовите 'byebug' в любом месте кода, чтобы остановить выполнение и получить консоль отладчика
gem 'byebug', платформы: [:mri, :mingw, :x64_mingw]
# Добавляет поддержку системного тестирования Capybara и драйвера селена.
