2013-01-14 18 views
5

मैं एक पूर्ण टाइपप्रति और RequireJs के साथ काम कर आवेदन है, यह पूरी तरह से काम कर रहा है। अब मैं WebEssentials डाउनलोड कर चुका हूं और यह minified स्क्रिप्ट फ़ाइलों को उत्पन्न कर रहा है। WebEssentials मूल स्क्रिप्ट फ़ाइल के समान नाम के साथ अलग * .min.js फ़ाइलों को उत्पन्न करता है।लोड हो रहा है min.js साथ टाइपप्रति द्वारा उत्पन्न फ़ाइलों की आवश्यकता होती है

मैं अपने मूल स्क्रिप्ट फ़ाइलें की मेरी minified फ़ाइलों को लोड करने के बजाय RequireJs बता सकते हैं?

अग्रिम धन्यवाद

उत्तर

8

में आप पथ config का उपयोग कर सकते मॉड्यूल रास्तों ओवरराइड करने के लिए। तुम भी गैर minified फ़ाइलों पर वापस गिर कर सकते हैं:

requirejs.config({ 
    enforceDefine: true, 
    paths: { 
     jquery: [ 
      'lib/jquery.min', 
      'lib/jquery' 
     ] 
    } 
}); 

एक अधिक सामान्य तरीका मिनट फ़ाइलों है कि मैं के बारे में पता नहीं है का उपयोग करने के वहाँ हो सकता है!

+4

इस के प्रदर्शन लागत क्या है:

//Establish a new 'useMinified' boolean in your initial config. require.config({ useMinified: true }); 

फिर, require.js पुस्तकालय फ़ाइल 'nameToUrl' के रूप में नीचे समारोह को संपादित करने और संशोधित? आपका उदाहरण उत्पादन का समर्थन करता है, लेकिन, केवल एक उदाहरण के लिए, कहें कि मैं '['scriptfile', 'scriptfile.min']' का उपयोग करता हूं। 'scriptfile 'dev में है लेकिन केवल' scriptfile.min'' उत्पादन में है। एक बार या प्रत्येक मॉड्यूल आवश्यकता पर, प्रेजजेस उत्पादन में 'स्क्रिप्टफाइल' की कितनी बार देखता है? मैं वहाँ अतिरिक्त काम का एक सीमांत बिट बस क्योंकि संपत्ति का मान एक स्ट्रिंग के बजाय एक सरणी है मान लेते हैं। – N13

+0

मेरे अनौपचारिक परीक्षण में, यह इन क्रम में परीक्षण करता है और समझने के लिए पर्याप्त स्मार्ट है कि 404 एक 404 है (जिसका अर्थ फिर से नहीं दिख रहा है)। निश्चित रूप से एक प्रदर्शन हिट है हालांकि यदि आप देव में हैं लेकिन उत्पादन के अनुकूल हैं, या इसके विपरीत बनाम हैं। – Scribblemacher

0

इस के लिए कोई जादू नहीं है। आपके पास कुछ विकल्प हैं हालांकि

  1. आपके लिए न्यूनतम फ़ाइलों को उत्पन्न करने के लिए RequireJS optimizer का उपयोग करें। बहुत विन्यास योग्य
  2. का प्रयोग करें, एक में अपने सभी फाइलों को श्रेणीबद्ध करने और कम करें कि
  3. एक स्क्रिप्ट/बैच फ़ाइल बनाएं कहीं और अपने अनुप्रयोग को कॉपी करने के .js करने के लिए सभी .min.js फ़ाइलों का नाम और अधिलेखित गैर मिनट --out संकलक विकल्प 'डी' या कुछ अन्य मिश्रण लेकिन आप सार
  4. उपयोग paths config स्टीव की तरह उल्लेख मिलता है। बड़े ऐप्स के लिए ठीक है, बड़े के लिए आदर्श से कम।

सबसे अच्छा प्रदर्शन आप अनुकूलक पर गौर करने और यह निर्धारित करता है, तो एकल स्क्रिप्ट दृष्टिकोण सही फैसला या एक से अधिक छोटे पुस्तकालयों के लिए एक बेहतर तरीका है है चाहिए। मुझे संदेह है कि प्रत्येक .min.js फ़ाइल लोड करना आपके लिए आदर्श समाधान है।

+0

शायद आउट पैरामीटर सबसे अच्छा समाधान है। मैंने पहले से ही परीक्षण किया है और यहां तक ​​कि अगर मैं अपने मुख्य पृष्ठ में मिनीफाईड फ़ाइल को छोटा और स्पष्ट रूप से लोड करता हूं, तो ** ** ** अभी भी वर्बोज़, या मेरी स्क्रिप्ट के संस्करणों को वर्धित नहीं करेगा। इस मामले में, सभी स्क्रिप्ट के साथ एक फ़ाइल का उपयोग करके मैं अपनी स्क्रिप्ट लोड करना बंद करने के लिए कैसे कह सकता हूं, क्योंकि सबकुछ पहले ही लोड हो चुका है? – mvbaffa

+0

जिस तरह से बाहर पैरामीटर काम नहीं कर रहा है ठीक है। आउटपुट पैरामीटर में कोई स्क्रिप्ट उत्पन्न नहीं हुई थी। – mvbaffa

+0

यदि आप AMD '--out' का उपयोग कर रहे हैं तो आपके लिए काम नहीं करेगा। आपको इसके बजाय requirejs अनुकूलक का उपयोग करना होगा। – ryan

9

आप की आवश्यकता होती है जो सशर्त सभी मॉड्यूल फ़ाइल अनुरोध करता है कि सामान्य रूप से सिर्फ '.js' उपांग प्राप्त होगा करने के लिए '.min.js' जोड़ देंगे, एक सरल अनुकूलित संस्करण बना सकते हैं। पर विचार करें निम्नलिखित:

//Join the path parts together, then figure out if baseUrl is needed. 
url = syms.join('/'); 

    //new statement 
var extension = config.useMinified ? '.min.js' : '.js'; 

    //customized statement 
url += (ext || (/^data\:|\?/.test(url) || skipExt ? '' : extension)); 

url = (url.charAt(0) === '/' || url.match(/^[\w\+\.\-]+:/) ? '' : config.baseUrl) + url; 
+3

मैं सिर्फ एक कारण के बारे में नहीं सोच सकता कि यह अभी तक requjs में क्यों लागू नहीं किया गया है ?? – nljuba

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