Интеграция ActionCable с Webpacker в Rails 5.1

Я обновляю свое приложение с Rails 5.0 до 5.1, и есть одна вещь, о которой я нигде не упоминаю - использование Webpacker для обработки файлов JavaScript ActionCable.

Я понимаю, что Webpacker и конвейер ресурсов должны работать бок о бок, но теперь, когда Webpack встроен в Rails, было бы расточительством не использовать его для файлов, расположенных в каталоге assets (где живет ActionCable), тем не менее я не могу найти информацию как это сделать.

Меня особенно интересует Babel, поэтому я мог бы использовать ES6. Любые идеи?


person Aigars Dzerviniks    schedule 31.05.2017    source источник
comment
Вы можете использовать `# Gemfile gem 'sprockets', '›= 3.0.0' gem 'sprockets-es6' и использовать ES6 с транспилированием babel с помощью sprockets :)   -  person Niklas    schedule 31.05.2017
comment
Я думал об этом варианте раньше, но с Rails 5.1 это кажется ненужной зависимостью. Я бы очень хотел этого избежать.   -  person Aigars Dzerviniks    schedule 01.06.2017
comment
Итак, каков ваш точный вопрос?   -  person Niklas    schedule 02.06.2017
comment
Можно ли транспилировать файлы JS, расположенные в каталоге assets/javascripts, так же, как файлы в каталоге javascript/packs?   -  person Aigars Dzerviniks    schedule 02.06.2017


Ответы (1)


Проблема здесь в том, что вам нужно заменить реализацию Rails в ActionCable, которая написана для sprockets, чем-то, что написано в синтаксисе модуля, чтобы правильно использовать webpacker. В частности, эта строка в вашем cable.js require action_cable Все остальное должно быть легко переносимым. Кажется, есть несколько реализаций для ActionCable и модулей: https://www.npmjs.com/search?q=keywords:ActionCable

В частности, это выглядит именно так, как вы ищете: https://www.npmjs.com/package/actioncable-modules

Похоже, что есть некоторое движение на стороне Rails, чтобы использовать Webpacker как полноценную звездочку. замена в Rails 6, так что, возможно, стоит подождать, вместо того, чтобы создавать что-то, основанное на сторонних модулях.

person smallbutton    schedule 06.08.2018