javascript
  • dependency-injection
  • gulp
  • gulp-inject
  • 2016-02-12 8 views 6 likes 
    6

    , उन्हें श्रेणीबद्ध और एक .tmp फ़ोल्डर में न्यूनतम किया गया के सभी "कुछ भी नहीं index.html में इंजेक्षन करने के लिए", इस प्रकार है:Gulp इंजेक्षन कहते हैं मैं अपने सूचकांक में कुछ फ़ाइलों को इंजेक्षन कोशिश कर रहा हूँ

    gulp.task('prep-js',['clean'], function(){ 
        var jspath = './src/page/**/*.js'; 
        var treatJs = gulp.src(jspath) 
         .pipe(plugins.concat('scripts.js')) 
         .pipe(plugins.uglify()) 
         .pipe(gulp.dest('.tmp/page/js')) 
    }); 
    

    लेकिन जब मैं इंजेक्शन कार्य चलाता हूं, तो यह कहता है "index.html में इंजेक्ट करने के लिए कुछ भी नहीं"। कोड यह रहा:

    gulp.task('inject-deps', ['prep-css', 'prep-js'], function(){ 
    
        //select main bower files 
        var bowerDep = gulp.src(plugins.mainBowerFiles(), {read: false}); 
    
        //inject files 
        return gulp.src('./src/page/index.html') 
          .pipe(plugins.inject(bowerDep, {relative: true, name:'bower'})) 
          .pipe(plugins.inject(gulp.src('.tmp/page/js/*.js'), {name:'frontjs'})) 
          .pipe(plugins.inject(gulp.src('.tmp/page/css/*.css'), {name:'frontcss'})) 
          .pipe(gulp.dest('.tmp/page')); 
    }); 
    

    दिलचस्प बात यह है कि, पहले पाइप मुख्य बोवर फ़ाइलों इंजेक्शन लगाने के लिए पूरी तरह से काम करता है, लेकिन यह करने के लिए निम्न दो नहीं होता है।

    इसके अलावा, केवल जानकारी के लिए, 'प्लगइन्स' एक चर है जो मेरे प्लगइन की आवश्यकता है।

    इस मुद्दे के बारे में कोई विचार?

    उत्तर

    3

    आप अपने prep-js कार्य में धारा वापस जाने के लिए की जरूरत है: इससे पहले कि यह चलता है

    gulp.task('prep-js',['clean'], function(){ 
        var jspath = './src/page/**/*.js'; 
        return gulp.src(jspath) 
         .pipe(plugins.concat('scripts.js')) 
         .pipe(plugins.uglify()) 
         .pipe(gulp.dest('.tmp/page/js')) 
    }); 
    

    अन्यथा inject-depsprep-js लिए इंतजार नहीं होगा खत्म करने के लिए, जिसका अर्थ है श्रेणीबद्ध और uglified जे एस फ़ाइलें .tmp/page/js में अभी तक नहीं किया जाएगा।

    Gulp documentation के संबंधित भाग:

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

    • यह एक संकेत यह बताने के लिए देते हैं,
    • और यह एक देना संकेत है कि एक कार्य दूसरे के पूरा होने पर निर्भर करता है।
    +0

    धन्यवाद @svenschoenung! लेकिन यह तब तक नहीं किया जा रहा है जब मैं आश्रित कार्यों को निर्दिष्ट करता हूं, जैसे ['prep-css', 'prep-js']? –

    +0

    नहीं, कार्यों को एक साथ चलने से रोकने के लिए आपको दस्तावेज़ों से उद्धृत बुलेट बिंदुओं के ** ** ** की आवश्यकता है। आपके पास दूसरा है (निर्भरता को '[' प्री-सीएसएस ',' प्री-जेएस '] ') के साथ संकेत देना, लेकिन आप पहले व्यक्ति को खो रहे हैं (जिसे मैंने बोल्ड किया था)। –

    +0

    तो, इसका मतलब है कि मुझे कॉलबैक का उपयोग करने की ज़रूरत है, है ना? –

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