2017-04-01 11 views
6

मुझे पता है कि gulp को ठीक से काम करने के लिए एक विनील स्रोत स्ट्रीम की आवश्यकता होती है, लेकिन क्या पहले से मौजूद vinyl फ़ाइल या एक json ऑब्जेक्ट को अच्छी तरह से ज्ञात gulp.src के बजाय उपयोग करने का एक आसान तरीका है केवल ग्लोब लेता है?ऑब्जेक्ट सूची का उपयोग कैसे करें gulp स्रोत स्ट्रीम

उत्तर

6

कई शोधों के बाद मुझे उस समस्या के लिए कोई अच्छा समाधान नहीं मिला, इसलिए मैंने आपके साथ अपना समाधान साझा करने का फैसला किया।

यही समस्या 2 में हल किया जाता है कदम

1: आप एक विनाइल फाइल करने के लिए घूँट में आप क्या कभी आप चाहते कन्वर्ट करने के लिए पाइप की जरूरत है। https://github.com/gulpjs/vinyl

2: यह है कि कदम के बारे में अधिक जानकारी के लिए इतना

const Vinyl = require('vinyl'); 
var vinyl = new Vinyl(); 
vinyl.cwd = '/'; 
vinyl.base = '/'; 
vinyl.path = '/yourfictivefilepath'; 
vinyl.contents = new Buffer(JSON.stringify(yourobject)); 

की तरह किया जा सकता है अपने विनाइल फाइलों से बाहर एक स्ट्रीम बनाएं

मैंने पाया कि उन कदमों दोहराव हो सकता है और कर सकते हैं कर सकते हैं कोड को कम पठनीय बनाएं ताकि मैंने उन चरणों को एनपीएम पैकेज में समाहित करने का निर्णय लिया जो आपके लिए यह करता है।

https://www.npmjs.com/package/gulp-to-stream

1

घूंट इनपुट के रूप में विनाइल फ़ाइलें और वास्तव में uses इसकी प्रॉपर्टी (.base जैसे) के कुछ का उपयोग करता है के बाद से, यह घूंट का उपयोग करने के विनाइल फ़ाइलें बनाने के लिए अपरिहार्य है।

'use strict'; 
const gulp = require('gulp'); 
const header = require('gulp-header');//https://www.npmjs.com/package/gulp-header 

gulp.task('default', function() { 
    gulp.src("a.json")//empty file 
     .pipe(header(JSON.stringify({a:1,b:2})))//inject your own content 
     .pipe(gulp.dest("dist/")) 
}); 

एक खाली फ़ाइल a.json बनाएँ और स्रोत के रूप में इसका इस्तेमाल करते हैं: तो मैं अपने लक्ष्य को प्राप्त करने के लिए इस का उपयोग की सलाह देते हैं। फिर gulp-header के साथ अपनी खुद की सामग्री इंजेक्ट करें और जो कुछ भी आप चाहते हैं उसे करें।

आप अतिरिक्त फ़ाइलें (a.json) से बचना चाहते हैं, इस प्रयास करें:

'use strict'; 
const gulp = require('gulp'); 
const transform = require('gulp-transform'); 
const rename = require("gulp-rename"); 

gulp.task('default', function() { 
    return gulp.src("./gulpfile.js") 
     .pipe(transform(() => JSON.stringify({a:1,b:2}))) 
     .pipe(rename("a.json")) 
     .pipe(gulp.dest("dist/")) 
}); 
संबंधित मुद्दे