Любой сейчас пытается внедрить новый синтаксис ES2015 в Rails. Почему? Потому что это круто, но большинство людей делают это из-за ReactJS, и я один из таких людей. Прямо сейчас я установил гем `rails-react`, но я не слишком доволен тем, как все это работает, и мне не нравится реализация JSX в CoffeeScript. Когда я пытаюсь не использовать JSX, мои компоненты начинают выглядеть как мусор.

Вавилонское время

Я пробую много разных способов простой реализации ES2015 в Rails, и я также всегда хочу использовать пакеты NPM, потому что использование rails-assets довольно раздражает. Дамы и господа, я хочу представить простой способ получить все эти классные вещи.

Установите гем browserify-rails, скопируйте файл пакета из README, `bundle install && npm install`. И начните прямо сейчас, вы можете избавиться от директив Sprockets `//= require` и использовать ванильный CommonJS `require()`.

Но это не закончено, у нас нет ES2015 на борту. Для этого добавим специальную библиотеку NPM для Browserify.

npm install — save babelify

Теперь нам нужно обновить нашу команду Browserify в файле rails `application.rb`

config.browserify_rails.commandline_options = “-t babelify”

Теперь давайте добавим код javascript в application.js.

//= require jquery
//= require jquery_ujs
“use strict”
let greetingService = require(‘./greeting_service’)
let service = new greetingService(‘Hello world’)
service.print()

В `greeting_service.js`

“use strict”
class GreetingService {
 constructor(greeting) {
 this.greeting = greeting;
 }
print() {
 console.log(`Hello ${this.greeting}`)
 }
}
module.exports = GreetingService

Теперь все работает нормально.