2014-09-17 5 views
9

के लिए समस्याएं उत्पन्न हुईं। मैं हाल ही में ब्राउजरिफ़ का उपयोग करने के लिए एंगुलरजेएस ऐप को परिवर्तित कर रहा था, और साथ ही, मैं अपने निर्माण प्रणाली के रूप में मिमोसा से गुलप में स्विच कर रहा था।gulp-minify-html खाली एचटीएमएल विशेषताओं को हटा देता है, जिससे कोणीय ऐप्स

कई अन्य छोटे मुद्दों से निपटने के बाद, मैं कुछ समस्याओं के साथ छोड़ दिया गया था:

  1. मैं अपने index.html में निम्न त्रुटि हो रही है जब एनजी स्विच और का उपयोग कर रखा एनजी स्विच-जब:

    Error: [$compile:ctreq] Controller 'ngSwitch', required by directive 'ngSwitchWhen', can't be found!

  2. एनजी-शामिल मेरे लिए काम नहीं कर रहा था (कोई त्रुटि संदेश, बस कुछ नहीं शामिल हो गया और कोई नेटवर्क अनुरोध जारी किए गए थे)।

  3. मेरे कस्टम विशेषताओं में से एक कोड को कभी भी नहीं कहा जा रहा था, भले ही यह मेरी मूल index.html फ़ाइल में HTML टैग का स्पष्ट रूप से हिस्सा था।

मैं समय देखने के लिए क्या समस्या हो सकती है विभिन्न चीजों की कोशिश कर के एक बहुत खर्च किया, लेकिन अंत में यह नीचे नज़र रखी नीचे मेरा उत्तर में वर्णित है।

उत्तर

13

मेरी gulpfile.js का एक हिस्सा इस्तेमाल किया घूंट-कम करें-एचटीएमएल एचटीएमएल कम करें करने के लिए। यह पता चला है कि, डिफ़ॉल्ट रूप से, gulp-minify-html HTML से खाली विशेषताओं को हटा देता है। यह कोणीय ऐप्स के लिए स्पष्ट रूप से घातक है।

नतीजतन, एनजी-स्विच, एनजी-शामिल और मेरी कस्टम विशेषता को कम से कम HTML से हटा दिया जा रहा था, और इसलिए कोणीय त्रुटि संदेश एनजी-स्विच मामले में बिल्कुल सही था।

इसे ठीक करने के लिए, मैंने को minifyHTML() के विकल्पों में आसानी से अपना गल्प नियम बदल दिया, जिसका अर्थ है "खाली विशेषताओं को न रोकें"। अन्य अनुकूलन झंडे बारे में अधिक जानकारी के लिए

var minifyHTML = require('gulp-minify-html'); 

gulp.task('htmlmin', function() { 
    var htmlSrc = './app/index.html', 
    htmlDst = './public/'; 
    var opts = {empty: true}; 

    gulp.src(htmlSrc) 
     .pipe(changed(htmlDst)) 
     .pipe(minifyHTML(opts)) 
     .pipe(gulp.dest(htmlDst)); 
}); 

See the documentation here: मेरी घूंट कार्य अब इस तरह दिखता है।

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