2011-09-05 9 views
7

मैं अब इसRequJs में, मैं हैश आउटपुट फ़ाइलों के नामों का उत्पादन करने के लिए ऑप्टिमाइज़र को कैसे निर्देश दूं?

sudo /usr/local/bin/node /tmp/r.j/r.js -o name=main out=test.js baseUrl=. 
परीक्षण
के लिए

तरह अनुकूलक चलाने के लिए, मैं कैसे सामग्री की एक हैश के रूप में उत्पादन के लिए अनुकूलक फ़ाइल नाम बताऊँ (स्पष्ट रूप से स्थापित करने के लिए अधिकतम समय सीमा समाप्त) और फिर में निर्भरता का नाम बदलने प्रासंगिक कॉल की आवश्यकता है?

एक उदाहरण स्थिति यह

require({ 
     baseUrl: '{{ STATIC_URL }}js', 
     paths: { 
      jquery: 'https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min', 
      jqueryui: 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min' 
     } 
    }, ['order!jquery','order!jqueryui','order!main']); 

requirejs 13KUJAW78M.js

की तरह कुछ खींच किया जाना चाहिए

Miller Medeiros’s suggestion के आधार पर मैं एक एकल मास्टर फ़ाइल में सभी कॉल्स की आवश्यकता होती है डाल करने के लिए योजना बना रहा हूँ की तरह कुछ हो जाएगा। इसका यह भी अर्थ होगा कि ऐसी सभी कॉलों को अनुकूलित करने की भी आवश्यकता होगी।

, उदा,

switch(document.location.pathName){ 
     case '/foo': 
      require(['sections/foo/main']); 
      break; 
     case '/foo/bar': 
      require(['sections/foo/main', 'core/bar']); 
      break; 
     default: 
      require('sections/home'); 
    } 

की आवश्यकता होती है ([ 'वर्गों/foo/मुख्य']);

को हैश फ़ाइल में अनुकूलित किया जाना चाहिए।

क्या कोई मदद कर सकता है?

उत्तर

4

RequJS ऑप्टिमाइज़र के पास यह विकल्प नहीं है, लेकिन आप फ़ाइलों का नाम बदल सकते हैं और paths config का उपयोग नामित फ़ाइलों में उपनाम सेट करने के लिए कर सकते हैं, अधिक जानकारी के लिए this thread देखें।

उदाहरण के लिए, उदाहरण के लिए, यदि आप फ़ाइलों का नाम बदलते हैं: 'सेक्शन/foo/main.123QWERT.js', 'सेक्शन/home.4567ASDFG.js', 'core/bar.0284ZXCV.js' आप कर सकते हैं सिर्फ एक पथ इस तरह विन्यास जोड़ें:

require.config({ 
    paths : { 
    //alias to new files without JS extension 
    'core/bar': 'core/bar.0284ZXCV', 
    'sections/home' : 'sections/home.4567ASDFG', 
    'sections/foo/main' : 'sections/foo/main.123QWERT' 
    } 
}); 

रास्तों config, एक फ़ाइल कैश नहीं किया जाएगा पर होना चाहिए शायद बस HTML पर config रहते हैं।

+0

क्या अनुकूलक हैश जोड़ देगा या क्या मुझे फ़ाइल नामों को बदलने के लिए कुछ स्क्रिप्टिंग + रेगेक्स जादू करना होगा? –

+0

अन्य फ़ाइलों के साथ मुख्य रूप से संपीड़ित किया जा सकता है या इसे अलग होना चाहिए –

+0

आवश्यकताजेएस ऑप्टिमाइज़र हैश को नहीं जोड़ता है, आपको इसे मैन्युअल रूप से उत्पन्न करना होगा (या कुछ टूल का उपयोग करना जिन्हें मुझे पता नहीं है) और पथ कॉन्फ़िगरेशन पास करें जब एक मॉड्यूल को "कोर/बार" की आवश्यकता होती है तो यह फ़ाइल को "core/bar.HASH_VALUE.js" लोड कर देगा। आपके सेटअप के आधार पर आपको उन कई फ़ाइलों के लिए हैश उत्पन्न करने की आवश्यकता नहीं है। मुख्य अन्य फ़ाइलों के साथ संपीड़ित किया जा सकता है। –

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

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