2015-12-30 5 views
38

पर अपग्रेड मैं अपने मौजूदा रेल और कोणीय 1.x एप्लिकेशन को अपग्रेड करना चाहता हूं। मैं ng-upgrade documentation का पालन कर रहा हूं और देख रहा हूं कि systemjs, typescript, tsd और कुछ अन्य जावास्क्रिप्ट पुस्तकालयों सहित कई निर्भरताएं हैं। आदर्श रूप से एक कोणीय-2 मणि ​​होगा जिसमें सभी निर्भरताएं होंगी लेकिन मुझे वह नहीं मिल रहा है। इसके बाद मैंने प्रत्येक निर्भरता के लिए मणि की तलाश की लेकिन टीडी के लिए कोई नहीं है।रेल कोणीय 2

क्या कस्टम निर्माण रणनीति पर स्विच करना समझ में आता है तो मैं जावास्क्रिप्ट पैकेज प्रबंधन के लिए एनपीएम का उपयोग कर सकता हूं? मैंने this आलेख पढ़ा है जो गल्प की सिफारिश करता है लेकिन मुझे संपत्ति पाइपलाइन की सुविधा पसंद है।

क्या कोई मुझे रेल परियोजना के साथ एनजी-अपग्रेड का सफलतापूर्वक उपयोग करने के उदाहरणों के बारे में बता सकता है? क्या यह कस्टम बिल्ड समाधान का उपयोग करता है जैसे कि गल्प या क्या यह संपत्ति पाइपलाइन का उपयोग करता है?

+0

कोणीय और इसकी निर्भरता का प्रबंधन क्यों नहीं करते? https://viget.com/extend/gulp-rails-asset-pipeline – bbozo

उत्तर

-1

उपयोग मणि AngularJS

gem 'angularjs-rails', '~> 1.4', '>= 1.4.8' 

application.js में डालने

//= require angular 
+0

कोणीय-रेल मणि में कोई 'ngUpgrade' पैकेज नहीं है। एक अस्थिर विकल्प है लेकिन यह केवल कोणीय-2 है https://github.com/hiravgandhi/angularjs-rails/tree/master/vendor/assets/javascripts – user2954587

-1

आप http://bower.io/#install-bower उपयोग कर सकते हैं और आप अपने रेल एप्लिकेशन .bowerrc और bower.json है जो करने के लिए दो फ़ाइलें जोड़ सकते हैं जैसे GemFile

+0

कोणीय 2 बोवर का समर्थन नहीं करता है। – thedanotto

+0

@ thedanotto: कोणीय 2 बोवर का समर्थन करता है। Https://libraries.io/bower/angular2 देखें। – Suriyaa

+1

आपका लिंक, जब आप निर्देशों का पालन करते हैं, AngularJS इंस्टॉल करता है, कोणीय 2 नहीं। इस कमांड का उपयोग करके बॉवर के साथ कोणीय 2 को स्थापित करना संभव है 'बॉवर इंस्टॉल एंजुलर 2-बिल्ड' https://groups.google.com/forum/#!topic/angular/vDQBKuf5HKY – thedanotto

10

मेरा मुख्य सुझाव अभी तक एंगुलर 2 में अपग्रेड नहीं कर रहा है, अभी भी विकास में भारी है और आपको रेल के लिए मणि नहीं ढूंढने जैसे कई मुद्दों का सामना करना पड़ेगा।

वैसे भी, वर्तमान में, angular2 sprockets (डिफ़ॉल्ट रेल पाइप लाइन) के साथ संकलित नहीं किया जा सकता है, तो आप वास्तव में चाहते हैं एक कस्टम समाधान।

मेरा मुख्य सुझाव वेबपैक के साथ जाना है, अन्य विकल्प ब्राउज़र या गल्प (और अन्य) हैं, जो मुख्य रूप से स्वाद का विषय है। कुल मिलाकर, angular2 के लिए एक पाइप लाइन को विन्यस्त जटिल है, तो आप typings के माध्यम से .d.ts फ़ाइलों की देखभाल करने के लिए है (जो अद्यतन जो अब हटा दिया गया है tsd का संस्करण है), तो आप tsc के माध्यम से और संभवतः babel भी अगर के माध्यम से अपने टाइपप्रति transpile करने के लिए है आप async/await (जो वास्तव में शांत हैं) का उपयोग करना चाहते हैं। आप image_path जैसे रेल में अपनी फ़ाइलों का संदर्भ देने की क्षमता खो देंगे और इस तरह, कस्टम पाइपलाइन का उपयोग करके, ताकि आप इसे भी ध्यान में रखना चाहें।

टाइपोग्राफी सरल कॉफ़ीस्क्रिप्ट फ़ाइलों की तुलना में संकलित करने के लिए अधिक जटिल है, तो आप इसके संदर्भ में हर दूसरी फ़ाइल पर निर्भर करते हैं, क्योंकि इसे इसके खिलाफ जांच संकलित करने की आवश्यकता है, कुछ सरल की अपेक्षा न करें।

कहा जा रहा है, तुम सच में रेल और कोणीय (2 या नहीं), सही तरीके से यह दो अलग-अलग परियोजनाओं, AngularJS के साथ ही रेल app के साथ एक और एक है संभाल करने के साथ काम करना चाहते हैं पथ। इस तरह आप चिंता को अलग करते हैं, आप रेल को प्रभावित किए बिना एंगुलर 2 के लिए एक कस्टम पाइपलाइन प्राप्त कर सकते हैं और आपको जेएसओएन एपीआई के रूप में रेल का उपयोग करके अपने एंगुलर 2 ऐप को सही तरीके से कोड करने के लिए मजबूर होना होगा।

0

मेरा समाधान वेबपैक या संपत्ति पाइपलाइन के बिना इसे यथासंभव सरल रखना था। मैंने public में ts फ़ाइलों को पाइपलाइन के माध्यम से एनपीएम संपत्तियों की सेवा के लिए कॉन्फ़िगर किया गया रेल लगाया।https://github.com/jonnysamps/rails-ng2-starter

कई मायनों में यह अलग बैकएंड/दृश्यपटल परियोजनाओं होने का लाभ मिलता है लेकिन एक साथ सभी कोड रखता है:

मैं एक उदाहरण के रूप में इस संरचना के साथ एक स्टार्टर परियोजना को डाल दिया।