2015-01-22 30 views
5

में सिम्लिंक पर त्रुटि दे रहा है मेरे पास मेरे छवियों फ़ोल्डर में एक सिम्लिंक है जो किसी अन्य फ़ोल्डर को इंगित करता है जिसमें किसी तृतीय पक्ष लाइब्रेरी द्वारा प्रदान की गई बाहरी छवियां होती हैं (बॉवर - गॉट लव जावास्क्रिप्ट द्वारा प्रबंधित)। अपने निर्माण की प्रक्रिया के हिस्से के रूप में, मैं इस प्रकार सभी छवियों को संपीड़ित: शोगुलप grp.src()

gulp.task('images', function() { 
return gulp.src('static/img/**/*') 
    .pipe(imagemin({ optimizationLevel: 3, progressive: true, interlaced: true })) 
    .pipe(gulp.dest('dist/img')) 
}); 

घूंट img फ़ोल्डर में प्रतीकात्मक कड़ी फ़ोल्डर में हो जाता है है, यह

events.js:72 
    throw er; // Unhandled 'error' event 
     ^
Error: EISDIR, read 

रिटर्न घूंट-डिबग का उपयोग यह है कि symlink फ़ोल्डर पर baulks। मैं मैक ओएसएक्स पर हूं और symlink ln -s का उपयोग करके बनाया गया था। कोई विचार?

+0

क्या आपने सिम्लिंक की बजाय वास्तविक फ़ाइल/फ़ोल्डर का उपयोग करने का प्रयास किया है? बस यह सत्यापित करने के लिए कि सिम्लिंक समस्या को जोड़ते हैं। EISDIR त्रुटि मुझे सोचती है कि gulp निर्देशिका का उपयोग करने की कोशिश कर रहा है क्योंकि यह उस निर्देशिका में फ़ाइलों के बजाय स्रोत है। – donnywals

+0

एक फ़ोल्डर होने पर ठीक काम करता है। मैंने इसे एक अस्थायी समाधान के रूप में उपयोग किया है। – rstuart85

+0

मुझे वर्तमान में जेएसपीएम स्थानीय लिंक के साथ काम कर रहे एक ही मुद्दे का सामना करना पड़ रहा है ... – ryanlutgen

उत्तर

5

gulp.src()node-glob का उपयोग करता है, जो सिमलिंक क्रॉल नहीं करता है:

** एक "globstar" एक रास्ता हिस्से में अकेली है, तो यह शून्य या अधिक निर्देशिका और उपनिर्देशिका मैचों के लिए खोज से मेल खाता है। यह symlinked निर्देशिका क्रॉल नहीं करता है। हालांकि उनकी सामग्री पैटर्न के बाद के कुछ भागों के खिलाफ मेल खा सकता है

ध्यान दें कि निर्देशिका सांकेतिक रूप से लिंक, एक ** के हिस्से के रूप क्रॉल नहीं कर रहे हैं। यह अनंत लूप और डुप्लिकेट और इसी तरह से रोकता है।

मुझे नहीं पता कि यह त्रुटि में है या बस उन्हें छोड़ दें।

+0

आप उम्मीद करते हैं कि कोई त्रुटि न फेंकें लेकिन हम यहां हैं। – rstuart85

3

symlink फ़ोल्डर को इंगित करते समय मुझे एक ही समस्या हो रही थी। समाधान सरल था, बस vinyl-fs पैकेज का उपयोग किया गया।

var vfs = require('vinyl-fs'); 

gulp.task('myTask', [], function() { 
    vfs.src('static/img/**/*') 
    .pipe(vfs.dest('dist/img')) 
)}; 
2

गुलप को सिम्लिंक का पालन करने के लिए आप 'follow: true' विकल्प का उपयोग कर सकते हैं। उदाहरण के लिए:

gulp.src('static/img/**/*', { follow: true }) 
संबंधित मुद्दे