неуверенный в том, что application.js в webpacker-rails требует

У меня есть приложение rails 6 с

gem 'webpacker', '~> 4.0'
gem 'react-rails'

включены в гемфайл,

Я бегал rails webpacker:install:react rails generate react:install и yarn install

И я заметил, что в моей папке javascript / packs есть файл application.js:

// This file is automatically compiled by Webpack, along with any other files
// present in this directory. You're encouraged to place your actual application logic in
// a relevant structure within app/javascript and only use these pack files to reference
// that code so it'll be compiled.

require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")


// Uncomment to copy all static images under ../images to the output folder and reference
// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)
// or the `imagePath` JavaScript helper below.
//
// const images = require.context('../images', true)
// const imagePath = (name) => images(name, true)

Зачем нужны именно эти предметы? Почему некоторые требования имеют префикс @rails?


person snowflakekiller    schedule 29.03.2020    source источник


Ответы (1)


В зависимости от вашего приложения вы можете удалить некоторые или все из них.

  • пакет @rails/ujs добавляет ненавязчивые функции JavaScript, такие как jaxification формы с параметром remote: true и добавление токена CSRF в запросы Ajax.
  • turbolinks «ускоряет навигацию по приложению. Когда вы переходите по ссылке, Turbolinks автоматически выбирает страницу, меняет ее тег тела и объединяет тег заголовка, и все это без затрат на полную загрузку страницы ». При использовании используйте осторожно и поймите компромиссы https://github.com/turbolinks/turbolinks/blob/master/README.md
  • пакет @rails/activestorage необходим только в том случае, если вы используете ActiveStorage на сервере для поддержки загрузки файлов.
  • пакет channels необходим только в том случае, если вы используете функцию веб-сокета Rails ActionCable

Префикс @rails/ - это просто часть имени данного пакета, указывающая, что он принадлежит организации; обычно это просто способ избежать конфликтов имен с другими пакетами, которые могут иметь такое же имя.

person rossta    schedule 30.03.2020
comment
Спасибо! это было довольно ясно. Также подписался на вашу рассылку новостей! Спасибо, что любезно поделились своими знаниями @rossta - person snowflakekiller; 30.03.2020
comment
Спасибо, рад, что помог. - person rossta; 30.03.2020