2013-05-16 9 views
9

के लिए चींटी निर्माण स्क्रिप्ट में YUI कंप्रेसर का उपयोग करने के लिए कैसे एक चींटी निर्माण स्क्रिप्ट मैं अंत में मिला यह काम कर रहा है में YUI कंप्रेसर का उपयोग करने के लिए खोज कुछ दिनों के बाद। कई पुराने उदाहरण (< 2010) एक चींटी कार्य बनाने और अपनी बिल्ड स्क्रिप्ट के भीतर इसका उपयोग करने के लिए मौजूद हैं, लेकिन यह मेरे लिए अधिक था।कैसे जावास्क्रिप्ट और सीएसएस

कई उदाहरण पुराने हैं और चींटी के कुछ अधिक ज्ञान या चींटी कार्यों को कॉन्फ़िगर करने की आवश्यकता है। नीचे दिया गया समाधान बस मेरे लिए त्वरित, आसान और प्रभावी था।

उत्तर

14

नीचे दिए गए <target> टैगों में से एक को एक ही निर्देशिका में जावास्क्रिप्ट फ़ाइलों को संकुचित करने के लिए नीचे जोड़ा गया था। ये फ़ाइलें अपना मूल नाम बरकरार रखती हैं। सीएसएस के लिए ऐसा करने के लिए बस 'जेएस' को 'सीएसएस' पर स्विच करें और तदनुसार पथ अपडेट करें।

यह YUI कंप्रेसर 2.4.7 साथ किया गया था और मैं कक्षा पथ या सेटिंग्स की अन्य संशोधनों में कोई भी परिवर्तन के बिना चींटी निर्माण स्क्रिप्ट ग्रहण जूनो में इसे चलाने के।

<!-- Minimizing Javascript files --> 
    <echo message="Compressing Javascript files at location: ${build.root}/resources/js/*.js" /> 
    <java jar="c:/dev/lib/yuicompressor-2.4.7/build/yuicompressor.jar" fork="true"> 
     <arg value="${build.root}/resources/js/*.js" /> <!-- input path for JS files --> 
     <!--<arg value="-v" /> --><!-- Turn on verbose --> 
     <arg value="-o" /> 
     <arg value="'.js$:.js'" /> 
     <arg value="${build.root}/resources/js/*.js" /> <!-- output path for JS files --> 
     <classpath> 
      <pathelement location="c:/dev/lib/yuicompressor-2.4.7/build/yuicompressor.jar"/> 
     </classpath> 
    </java> 

कृपया इस उत्तर को बेहतर बनाने के लिए स्वतंत्र महसूस करें। उपरोक्त समाधान मेरे लिए काम करता है, लेकिन मैं कोई विशेषज्ञ नहीं हूं।

+0

कैसे सब .js संपीड़ित करने के लिए एक .js में फ़ाइल? ? क्योंकि ऊपर स्क्रिप्ट अपने स्वयं के फ़ाइल में .js फ़ाइलों को संपीडित ... –

+2

यह के लिए FileNotFoundException देता है - हालांकि पथ मौजूद है /home/shwetanka/projects/webapp/webapp/content/js/mobile/*.js। – Shwetanka

+0

@Shwetanka यदि आपके कोई प्रश्न है तो आपको अपना प्रश्न धागा बनाना चाहिए और समस्या का संकेत देने वाले इस उत्तर का संदर्भ लें। –

5

मैं निम्नलिखित समाधान का उपयोग कर रहा जगह में फ़ाइलों को कम करें, क्योंकि मैं पिछले जवाब के साथ FileNotFoundException मिला है।

सीएसएस कम करें के लिए, नीचे css साथ js बदलें। http://code.google.com/p/yui-compressor-ant-task/ या इस एक: https://github.com/parambirs/ant-yui-compressor जो लागू से neater लगता

<target name="compress" description="compress the JS files"> 
    <copy todir="temp/js" overwrite="yes"> 
     <fileset dir="original/js"/> 
    </copy> 
    <apply executable="java" parallel="false" dest="temp/js"> 
     <fileset dir="temp/js" includes="**/*.js" /> 
      <arg line="-jar"/> 
      <arg path="test_lib/yuicompressor-2.4.8.jar" /> 
      <arg line="-v"/> 
      <srcfile/> 
      <arg line="-o"/> 
      <mapper type="glob" from="*.js" to="*-min.js"/> 
      <targetfile/> 
    </apply> 
    <move todir="original/js" overwrite="true"> 
     <fileset dir="temp/js" /> 
     <mapper type="glob" from="*-min.js" to="*.js"/> 
    </move> 
</target> 
+0

मुझे html5boilerplate प्रोजेक्ट से एक पर आधारित एंटी स्क्रिप्ट के साथ एक ही समस्या हो रही थी। ऐसा लगता है कि एक अस्थायी निर्देशिका में जाने का आपका समाधान पहले तय कर चुका है। – Barrie

0

मैं इस चींटी कार्य का उपयोग करेंगे।

+0

बहुत अच्छा समाधान। कॉन्फ़िगर बहुत सीधे आगे लगता है। –

1

मैंने विक्टर के कोड की कोशिश की। वास्तव में कोई अस्थायी निर्देशिका की आवश्यकता नहीं थी। मैंने इस कोड का इस्तेमाल किया और यह मेरे लिए काम किया।

<apply executable="java" parallel="false" > 
       <fileset dir="${build.root}/resources/js" includes="**/*.js" /> 
        <arg line="-jar"/> 
        <arg path="${basedirectory}/yuicompressor-2.4.8.jar" /> 
        <srcfile/> 
        <arg value="-o" /> 
        <arg value="'.js$:.js'" /> 
        <!-- output path for JS files --> 
        <arg value="${build.root}/resources/js/*.js" /> 
        <arg line="--nomunge" /> 
        <arg line="--preserve-semi" />    
      </apply> 

+0

मुझे पहले से उपलब्ध '' .min.js '' फ़ाइल को संपीड़ित होने से बाहर करने के लिए प्रदत्त समाधान को कैसे ट्विक करना चाहिए। मैंने मूल्य के साथ 'बहिष्कृत' विशेषता को '' * /। Min.js "'के साथ-साथ" **/min * "को' 'में जोड़ने का प्रयास किया लेकिन यह काम नहीं प्रतीत होता है। –

+0

यह "बहिष्कृत" है और "बहिष्कृत नहीं" है। <नाम = "**/*। min.js" /> को बहिष्कृत करें –

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