2015-04-15 16 views
9

हर बार घड़ी को बदलने का पता चलता है, बंडल समय धीमा हो जाता है। मेरे गल्प कार्य में कुछ गलत होना चाहिए। कोई भी विचार?देखें w/gulp और babel प्रगतिशील धीमी हो जाती है

gulp.task('bundle', function() { 
    var bundle = browserify({ 
      debug: true, 
      extensions: ['.js', '.jsx'], 
      entries: path.resolve(paths.root, files.entry) 
     }); 

    executeBundle(bundle); 
}); 

gulp.task('bundle-watch', function() { 
    var bundle = browserify({ 
     debug: true, 
     extensions: ['.js', '.jsx'], 
     entries: path.resolve(paths.root, files.entry) 
    }); 

    bundle = watchify(bundle); 
    bundle.on('update', function(){ 
     executeBundle(bundle); 
    }); 
    executeBundle(bundle); 

}); 

function executeBundle(bundle) { 
    var start = Date.now(); 
    bundle 
     .transform(babelify.configure({ 
      ignore: /(bower_components)|(node_modules)/ 
     })) 
     .bundle() 
     .on("error", function (err) { console.log("Error : " + err.message); }) 
     .pipe(source(files.bundle)) 
     .pipe(gulp.dest(paths.root)) 
     .pipe($.notify(function() { 
      console.log('bundle finished in ' + (Date.now() - start) + 'ms'); 
     })) 
} 
+1

मुझे लगता है कि मैं पहले से ही यह तय हो गई, बंडल करने के लिए इन दो विकल्पों में जोड़ने इसे ठीक करने लगते हैं: कैश: {}, packageCache: {} – Niels

+0

उन विकल्पों के लिए आवश्यक हैं निगरानी का उपयोग करें। – JMM

+0

मेरे पास उन विकल्पों को कॉन्फ़िगर किया गया है, लेकिन अभी भी एक समान समस्या देख रहा हूं। प्रत्येक रन के साथ, पुनर्निर्माण के लिए समय बढ़ता है, भले ही फ़ाइल को स्पर्श किया गया हो (कोई वास्तविक परिवर्तन नहीं) जब तक कि यह अंततः 'रेंज एरर: अधिकतम कॉल स्टैक आकार से अधिक हो जाता है' – Emily

उत्तर

36

मैं इस एक ही समस्या थी और कोलाहल के वातावरण चर डीबग सेटिंग के द्वारा यह जांच की। उदा .:

$ DEBUG=babel gulp 

डिबग आउटपुट मैंने देखा है कि babelify परिवर्तनों को कई बार भाग गया निरीक्षण के बाद।

अपराधी यह था कि मैंने वास्तव में बंडल निष्पादित होने पर हर बार परिवर्तन को जोड़ा। आपको एक ही समस्या प्रतीत होती है।

कार्यों में executeBundle अंदर से

.transform(babelify.configure({ 
    ignore: /(bower_components)|(node_modules)/ 
})) 

ले जाएँ। नई bundle-watch इस तरह लिखा जा सकता है:

gulp.task('bundle-watch', function() { 
    var bundle = browserify({ 
     debug: true, 
     extensions: ['.js', '.jsx'], 
     entries: path.resolve(paths.root, files.entry) 
    }); 

    bundle = watchify(bundle); 
    bundle.transform(babelify.configure({ 
     ignore: /(bower_components)|(node_modules)/ 
    })) 
    bundle.on('update', function(){ 
     executeBundle(bundle); 
    }); 
    executeBundle(bundle); 
}); 
+3

इच्छा है कि मैं इसे और अधिक बढ़ा सकता हूं। यह मुझे समझने में लंबा समय लगेगा। – joemaller

+0

अच्छी तरह से देखा! प्रत्येक घड़ी अद्यतन को बुलाए जाने वाले विधि से परिवर्तन को स्थानांतरित करना एक समान समस्या को हल करता है जो कि निर्माण प्रक्रिया के साथ समय के साथ क्रमशः लंबे और लंबे समय तक ले रहा है। –

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