Любой сейчас пытается внедрить новый синтаксис 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
Теперь все работает нормально.