неуверен в том, какое приложение требуется. js в webpacker-rails - PullRequest
0 голосов
/ 30 марта 2020

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

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

, включенным в gemfile,

Я запустил rails webpacker:install:react rails generate react:install и yarn install

И я замечаю, что в моей папке javascript / packs присутствует файл приложения. 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)

Зачем ему нужны эти указанные c элементы? Почему некоторые из них требуют префикса @rails?

1 Ответ

1 голос
/ 30 марта 2020

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

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

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

...