2014-05-13 10 views
11

मेरे पास परीक्षण के लिए एक सरल गुलप बिल्ड प्रक्रिया सेटअप है। मैंने कई बार प्रलेखन पढ़ा है, लेकिन मुझे लगता है कि मैं indexs फ़ाइल में इच्छित स्क्रिप्ट को इंजेक्ट करने के लिए गुलप-इंजेक्ट नहीं कर पा रहा हूं।गुलप-इंजेक्ट काम नहीं कर रहा

मेरे Gulp फ़ाइल इस तरह दिखता है:

<!-- inject:js --> 

<!-- endinject--> 

इन दोनों GitHub पर दस्तावेज़ से कॉपी कर रहे हैं:

gulp.task('inject1', function() { 
    return gulp.src('app/index.html') 
     .pipe(inject(gulp.src('./app/scripts/app.js', {read : false}))) // Not necessary to read the files (will speed up things), we're only after their paths 
     .pipe(gulp.dest("dist")); 
}); 

gulp.task('inject2', function() { 
    return gulp.src('app/scripts/**/*.js', {read : false}) // Not necessary to read the files (will speed up things), we're only after their paths 
     .pipe(inject("./app/index.html")) 
     .pipe(gulp.dest("./dist")); 
}); 

यह मेरा Index.html का हिस्सा है।

जब मैं इन कार्यों को सांत्वना सिर्फ कहते हैं "प्रारंभ में से किसी को चलाने के 'इंजेक्षन' समाप्त 'सुई' '

मेरी ./dist फ़ोल्डर में यह एक index.html फ़ाइल बनाता है, लेकिन कोई js फ़ाइलों इंजेक्ट किया जाता।

मैं src में टाइपिंग की कोशिश की है और गुण कई अलग अलग तरह से है, लेकिन कोई किस्मत इंजेक्षन किसी भी विचार क्या मैं गलत कर रहा हूँ

+0

मुझे यह वही समस्या है। ऐसा लगता है कि यह एक नोप कर रहा है, क्योंकि परिणामी एचटीएमएल फ़ाइल बस और टिप्पणियों को सुरक्षित रखती है। –

+1

जैसा कि मैं हूं। मैं वास्तव में चाहता हूं कि कुछ प्रकार की डिबगिंग तंत्र मौजूद हो। –

+0

मेरे पास यह वही त्रुटि संदेश था, लेकिन यह पता चला कि मेरी index.html फ़ाइल खाली थी! – user2023861

उत्तर

9

सबसे पहले आप अपने endinject टैग में एक गलती है:।?

<!-- endinject--> 

होना चाहिए

<!-- endinject --> 

इस प्लग विभिन्न सेटिंग्स में मुझे और दूसरों के लिए महान काम किया है, तो यह समस्या शायद आपके विन्यास में है। जब आप स्ट्रीमिंग का उपयोग कर रहे हैं, तो आप यह सुनिश्चित नहीं कर सकते कि आप किन फाइलों को पाइप करते हैं, हमेशा प्लगइन का उपयोग करने का प्रयास करें ताकि आप यह देखने के लिए कि आप कौन सी फाइल पाइप कर रहे हैं। मैं gulp-using का उपयोग करने की सलाह देते हैं। अपने स्थापना डिबग करने के लिए इस प्रयास करें:

var debug = require('gulp-debug'); 

gulp.task('inject2', function() { 
return gulp.src('app/scripts/**/*.js', {read : false}) 
    .pipe(debug()) 
    .pipe(inject("./app/index.html")) 
    .pipe(gulp.dest("./dist")); 
}); 

इसके अलावा, आप एक ही विधि का उपयोग सत्यापित करने के लिए है कि आप अपने html फ़ाइल के रूप में अच्छी तरह से मेल खाते हैं सुनिश्चित करें। इसके अलावा - यह केवल तब तक परीक्षण और त्रुटि है जब तक आप सही पथ के साथ सही फ़ाइलों को प्राप्त करने के लिए पाइपिंग को समझते हैं।

यदि gulp-inject किसी भी फाइल को इंजेक्शन नहीं दे रहा है, तो इसका मतलब है कि आपने उन्हें सही ढंग से पाइप नहीं किया है, या आपका लक्ष्य inject सही नहीं था। प्लगइन काम करता है, और मेरे लिए बहुत अच्छा काम करता है।

आपको एक उदाहरण काम कर घूंट फ़ाइल को देखने के लिए, इस this gulpfile.js gist

+0

अच्छी आंखें। मैं अनुमान लगाने में सक्षम नहीं होता कि मेरी समस्या टिप्पणियों में रिक्त स्थान थी। – welbornio

+3

घूंट-का उपयोग कर एक घूंट प्लगइन के रूप में काली सूची में डाला गया है, घूंट-डिबग बजाय सिफारिश की: https://github.com/gulpjs/plugins/blob/master/src/blackList.json#L50 – Cosmin

+0

बस ने वही समस्या में भाग; मैं अपने कोड में '' का उपयोग कर रहा था। स्पष्ट रूप से '//' की अनुमति नहीं है और समस्याएं पैदा कर रही हैं। –

1

मैं निम्नलिखित कोड के साथ एक ही समस्या थी की जाँच की जरूरत है:

var injectSrc = gulp.src(['./public/css/*.css', '.public/js/*.js'], {read: false}); 
var injectOptions = { 
    ignorePath: '/public' 
}; 
var options = { 
    bowerJson: require('./bower.json'), 
    directory: './public/lib', 
    ignorePath: '../../public' 
} 

gulp.task('inject', function() { 
    return gulp.src('./src/views/*.html') 
      .pipe(debug()) 
      .pipe(wiredep(options)) 
      .pipe(debug()) 
      .pipe(inject(injectSrc, injectOptions)) 
      .pipe(debug()) 
      .pipe(gulp.dest('./src/views')); 

}); 

मेरे index.html निम्नलिखित था:

<!--bower:css--> 
<!--endbower--> 
<!--bower:js--> 
<!--endbower--> 
<!--inject:css--> 
<!--endinject--> 
<!--inject:js--> 
<!--endinject--> 

Click on this link to see what my file structure was. इंजेक्षन बनाने गया था सीएसएस फ़ाइलें ग सही ढंग से लेकिन जेएस फाइल नहीं। इसके अलावा बॉवर निर्भरताएं ठीक काम कर रही थीं।

अंत में मुझे याद आ रही '/' में सरणी gulp.src के लिए पारित पकड़ा()। इसे ठीक करने के बाद:

var injectSrc = gulp.src(['./public/css/*.css', './public/js/*.js'], {read: false}); 

यह सही तरीके से काम करता है।

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