2013-10-16 8 views
9

मैं ग्रंट 0.4.1 और ग्रंट-कॉन्ट्रिब-कॉपी संस्करण 0.4.1 का उपयोग कर रहा हूं। मैं एक निर्देशिका निर्देशिका से एक वितरण निर्देशिका में छवियों की प्रतिलिपि बनाने की कोशिश कर रहा हूं, लेकिन यह केवल छवि निर्देशिका की सामग्री के बजाय पूर्ण src निर्देशिका की प्रतिलिपि बना रहा है। दूसरे शब्दों में, इस जिले/images/src/images/... पैदा कर रही है, जबकि मैं परिणाम सिर्फ जिले/images/होना चाहता हूँ ...छवियों की प्रतिलिपि बनाने के लिए ग्रंट कॉपी का उपयोग नई निर्देशिका

यहाँ मेरी नकल काम है:

copy: { 
    images: { 
    files: { 
     'dist/images/': 'src/images/**/*' 
    } 
    } 
} 

और यह इस प्रकार चलाया जा रहा है:

// Default task. 
grunt.loadNpmTasks('grunt-contrib-concat'); 
grunt.loadNpmTasks('grunt-contrib-uglify'); 
grunt.loadNpmTasks('grunt-contrib-less'); 
grunt.loadNpmTasks('grunt-contrib-cssmin'); 
grunt.loadNpmTasks('grunt-contrib-copy'); 
grunt.registerTask('default', ['less', 'concat', 'uglify', 'cssmin', 'copy']); 

मैं इसे कैसे मिलता है ताकि केवल src/छवियों के उपनिर्देशिकामें कॉपी हो dist/images?

ये फ़ाइलें पहले ही संपीड़ित हैं और केवल निर्माण के दौरान गंतव्य पर प्रतिलिपि बनाने की आवश्यकता है।

उत्तर

4

आप flatten विकल्प निर्दिष्ट करना चाहते हैं, जो निर्देशिका पेड़ को हटा देता है।

copy: { 
    images: { 
     expand:  true, 
     cwd:  'src/images/', 
     src:  ['**/*'], 
     dest:  'dist/images/', 
     filter:  'isFile', 
     flatten: true 
    } 
} 
16

क्या वास्तव में मेरे समस्या तय ऊपर की तरह बिल्कुल रूट निर्देशिका संरचना है जहाँ से मैं "CWD" निर्देश के साथ कॉपी करने गया था और तब src तय किया गया था। बस इसे पोस्ट करने के लिए वापस आया और मूल रूप से एक ही समाधान देखा कि मैं साथ आया था। यहां बताया गया है मेरे लिए काम किया है:

copy: { 
    images: { 
    files: [ 
     { 
     expand: true, 
     cwd: 'src/images/', 
     src: ['**/*.{png,jpg,svg}'], 
     dest:'dist/images/' 
     } 
    ] 
    } 
} 

"CWD" संपत्ति आप स्रोत है जहाँ से आप कॉपी कर रहे की जड़ को परिभाषित करने की अनुमति देता है। इसे प्रतिलिपि बनाई गई फ़ाइलों के पथ में शामिल नहीं किया जाएगा। तो मेरे मामले में, परिभाषित "cwd" द्वारा "src/images" के रूप में, मैं स्रोत को "**/*। {Png, jpg, svg} के रूप में परिभाषित करने में सक्षम हूं" यह स्रोत छवियों में सभी उपनिर्देशिकाएं पाता है निर्देशिका और केवल मेरे द्वारा प्रदान किए गए एक्सटेंशन के साथ फ़ाइलों की प्रतिलिपि बनाता है। यह मुझे परिणाम देता है जो मैं चाहता हूं: dist/images/... अपेक्षित सभी उपनिर्देशिकाओं के साथ।

"cwd" का उपयोग किए बिना, grunt-contrib-copy सचमुच पूरे स्रोत वृक्ष संरचना को गंतव्य में प्रतिलिपि बनाता है। "Cwd" प्रॉपर्टी आपको एक फ़ाइल संरचना से उप-निर्देशिकाओं और फ़ाइलों को चुनने की अनुमति देती है और उन्हें दूसरे में कॉपी करती है।

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

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