web-dev-qa-db-fra.com

Comment utiliser ES6 (ES2015) dans une application Ruby on Rails?)

J'ai une application 4.2 Rails et j'envisage de convertir lentement le JS en ES6. En ce moment, j'utilise le fichier manifeste standard Rails du pipeline d'actifs vers pré-traiter mes js.

Je ne sais pas comment commencer à utiliser ES6 (en ajoutant une étape de transpile) dans mon Rails app.

Existe-t-il une méthode intégrée ou un outil ou un workflow recommandé?

19
pixelearth

À l'heure actuelle, malheureusement, il n'y a pas vraiment de méthode `` standard '' pour le faire - cela dépend en grande partie des exigences de votre application et de la possibilité de mettre à niveau Sprockets et/ou Rails.

Option 1: Restez sur Rails 4.2 et Sprockets 3, puis utilisez cette gemme pour ajouter le support ES6 et migrer progressivement vers Modules ES6: https://github.com/rmacklin/sprockets-bumble_d

Option 2: Mise à niveau vers Sprockets 4 (toujours en version bêta), puis utilisez soit https://github.com/fnando/babel- schmooze-sprockets ou https://github.com/babel/Ruby-babel-transpiler pour ajouter babel pour le support ES6. Les deux ont une documentation assez solide.

Option 3: Utilisez le webpack à la place ou à côté des pignons. Une recherche Google révélera quelques approches pour cela. Rails 5.1 (toujours en version bêta) introduira le support natif du webpack (et donc de babel) via le webpacker gem . Certes, cela peut être l'option la plus difficile pour une application existante Il y a un bon article à ce sujet ici: https://medium.com/statuscode/introducing-webpacker-7136d66cddfb#.cb4sixyah

18
Mike

Remplacez-le dans votre fichier production.rb

config.assets.js_compressor = :uglifier

avec ça

config.assets.js_compressor = Uglifier.new(harmony: true)

Pour dev, Chrome compile es6.

https://github.com/lautis/uglifier

https://www.rubydoc.info/gems/uglifier

2
Tom Hall