2017-02-25 6 views
14

मेरे पास 4.2 रेल ऐप है और धीरे-धीरे जेएस को ES6 में परिवर्तित करने पर विचार कर रहा हूं। अभी मैं अपने जेएस को प्री-प्रोसेस करने के लिए एसेट पाइपलाइन से मानक रेल मैनिफेस्ट फ़ाइल का उपयोग कर रहा हूं।मैं रेल ऐप पर रूबी में ES6 (ES2015) का उपयोग कैसे करूं?

मुझे यकीन है कि मेरे रेल अनुप्रयोग में (एक transpile कदम जोड़ने) ES6 उपयोग करने के लिए शुरू करने के बारे में जाने के लिए कैसे नहीं हूँ।

वहाँ एक अंतर्निहित विधि, या एक सिफारिश की उपकरण या कार्यप्रवाह है?

+1

एक त्वरित Google खोज दिखाता है [यह आलेख] (http://nandovieira.com/using-es2015-with-asset-pipeline-on-ruby-on-rails) आप का उपयोग हो सकता है। –

+0

आप बेबेल का उपयोग करना चाहते हैं। यह मणि आपके लिए यह कर सकता है। https://github.com/babel/ruby-babel-transpiler –

उत्तर

12

वर्तमान में दुर्भाग्य से वहाँ वास्तव में एक 'मानक' ऐसा करने का तरीका नहीं है - यह का एक बहुत अपने अनुप्रयोग की आवश्यकताओं पर निर्भर करता है और आप Sprockets और/या रेल का उन्नयन करने में सक्षम हैं।

विकल्प 1: ऑन रेल्स 4.2 और Sprockets 3 स्टे, तो ES6 समर्थन जोड़ने और धीरे-धीरे करने के लिए इस मणि का उपयोग मॉड्यूल ES6 में माइग्रेट: https://github.com/rmacklin/sprockets-bumble_d

विकल्प 2: Sprockets 4 में नवीनीकरण (अभी भी बीटा में), फिर ES6 समर्थन के लिए लेबल जोड़ने के लिए https://github.com/fnando/babel-schmooze-sprockets या https://github.com/babel/ruby-babel-transpiler का उपयोग करें। दोनों में ठोस ठोस दस्तावेज है।

विकल्प 3: या तो sprockets के बजाय या इसके अलावा वेबपैक का उपयोग करें। एक Google खोज इसके लिए कुछ दृष्टिकोण प्रकट करेगी। रेल 5.1 (अभी भी बीटा में) देशी वेबपैक (और इस प्रकार बेबेल) को webpacker gem के माध्यम से समर्थन प्रदान करेगा। माना जाता है कि यह मौजूदा एप्लिकेशन के लिए और अधिक कठिन विकल्प हो सकता है। इसके बारे में यहां एक अच्छा लेख है: https://medium.com/statuscode/introducing-webpacker-7136d66cddfb#.cb4sixyah

संबंधित मुद्दे