2013-02-15 62 views
13

मैं रूबी 3.2 पर रुबी के साथ एक समृद्ध क्लाइंट-साइड वेब एप्लिकेशन शुरू करने जा रहा हूं। मैं RequJS का उपयोग करना चाहता था, लेकिन ऐसा लगता है कि यह संपत्ति पाइपलाइन से टकरा रहा है। जहां तक ​​मुझे पता है, बाद में मूल रूप से निर्भर संपत्तियों को कम करने, उन्हें कम करने और उन्हें संपीड़ित करने के लिए क्या करना है (अगर मैं गलत हूं तो मुझे सही करें), जो जावास्क्रिप्ट फ़ाइलों को अतुलनीय रूप से लोड करने के साथ बहुत संगत प्रतीत नहीं होता है।रेल 3.2 एसेट पाइपलाइन और RequJS

पहली नज़र में, एसेट पाइपलाइन का बेहतर प्रदर्शन होता है। हालांकि, RequJS आपको जावास्क्रिप्ट कोड को पुन: उपयोग करने और इसकी निर्भरताओं को व्यवस्थित करने के लिए आसान मॉड्यूल में व्यवस्थित करने देता है।

क्या दोनों को गठबंधन करने का कोई तरीका है? यदि ऐसा नहीं है, तो आप कौन सा चयन करेंगे?

+0

जेएस मॉड्यूल या सर्वर-साइड के इन-ब्राउजर को शामिल करने के लिए क्या आवश्यक है? –

+0

इसका उपयोग ब्राउज़र में किया जाएगा – davids

+0

यह काम ठीक करेगा। –

उत्तर

4

मैं RequJS लाइब्रेरी डाउनलोड करने और इसे vendor/assets/javascripts पर टॉस करने का सुझाव दूंगा। फिर अपने application.js फ़ाइल में:

//= require require 

(? अजीब, हाँ), और कहा कि पर्याप्त होना चाहिए।

यह संपत्ति-पाइपलाइन और मॉड्यूलर जेएस लाइब्रेरी को गठबंधन करने का सबसे आसान तरीका है। मुझे इस विशेष पुस्तकालय की किसी भी अतिरिक्त सेटिंग्स के बारे में पता नहीं है, लेकिन आप this Railscast पर एक नज़र डाल सकते हैं, जो कुछ इसी तरह का वर्णन करता है। जो लोड हो रहा है क्लाइंट साइड के लिए requirejs उपयोग करने के लिए, जबकि अभी भी संपत्ति पाइप लाइन में से कुछ का लाभ लेने है -

+0

यह ठीक है, यह काम करेगा, लेकिन, फिर पाइपलाइन को अक्षम क्यों न करें? – davids

+0

मुझे लगता है कि अगर कुछ ठीक काम करता है तो इसे रखा जाना चाहिए। पाइपलाइन के बिना क्या होगा: असम्पीडित जेएस आगे और आगे ... –

+1

लेकिन मेरा मुद्दा यह है कि, असीमित रूप से लोड की गई स्क्रिप्ट को संपीड़ित नहीं किया जाएगा, है ना? उन्हें मेनिफेस्ट – davids

7

आप इस मणि https://github.com/jwhitley/requirejs-rails/

लगता है कर रही करने के लिए आप क्या चाहते हैं पर एक नजर है सकते हैं।

मुझे यह सुझाव देने का लुत्फ उठाया जाएगा कि मुझे लगता है कि ज्यादातर मामलों में संपत्ति पाइपलाइन बहुत तेज होगी क्योंकि यह एक छोटा सा जेएस संसाधन लोड करता है। निर्भरता प्रबंधन उतना अच्छा नहीं है, इसलिए यह ऐप पर बहुत अधिक निर्भर करेगा।

+1

पूरी तरह से निर्माण प्रक्रिया/ऐप पर निर्भर करता है। आप उत्पादन के लिए एक फ़ाइल में minify करने के लिए r.js का उपयोग कर सकते हैं, या एएमडी का लाभ उठा सकते हैं और मांगों को लोड करने वाले पैकेज बना सकते हैं, या आलसी लोड पैकेज जिन्हें बाद में उपयोग किया जाएगा। – kmiyashiro

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

  • कोई संबंधित समस्या नहीं^_^