2015-07-29 13 views
5

watchify साथ बाहर निकलने नहीं है मैं दो काम करने में सक्षम होने की घूंट स्थापित करने के लिए करना चाहते हैं: 1) फ़ाइलों में अपडेट पर नजर रखने और स्वचालित रूप से परिवर्तन पर browserify का उपयोग कर के पुनर्निर्माण के लिए watchify उपयोग करें, और 2) एक विज्ञापन करना - एक बार निर्माण और बाहर निकलें।Gulp, browserify

# 1 ठीक काम कर रहा है, लेकिन मैं मुसीबत काम करने के लिए हो रही है # 2 हो रही है। मैं टर्मिनल में gulp build टाइप करता हूं और सबकुछ ठीक से बंडल किया जाता है, लेकिन गल्प बाहर निकलता है या छोड़ नहीं जाता है; यह बस वहां बैठता है और मुझे कमांड लाइन पर वापस नहीं लाया गया है।

मैं क्या गलत कर रहा हूं? यहाँ पूरे gulpfile है:

'use strict'; 

var gulp = require('gulp'); 
var browserify = require('browserify'); 
var watchify = require('watchify'); 
var source = require('vinyl-source-stream'); 
var gutil = require('gulp-util'); 

var b = watchify(browserify({ 
    cache: {}, 
    packageCache: {}, 
    entries: ['./app/app.js'], 
    debug: true, 
    transform: ['reactify'] 
})); 

b.on('log', gutil.log); 

var bundle = function() { 
    return b.bundle() 
    .pipe(source('bundle.js')) 
    .pipe(gulp.dest('./dist')); 
}; 

gulp.task('watch', function() { 
    b.on('update', bundle); 
}); 

gulp.task('build', function() { 
    bundle(); 
}); 

gulp.task('default', ['watch', 'build']); 

और यहाँ मेरी टर्मिनल में उत्पादन है: 11:14:45 पर

[11:14:42] Using gulpfile ~/Web Dev/event-calendar/gulpfile.js 
[11:14:42] Starting 'build'... 
[11:14:42] Finished 'build' after 4.28 ms 
[11:14:45] 1657755 bytes written (2.99 seconds) 

Gulp अभी भी लॉग के बाद चल रहा है और टर्मिनल के लिए बाहर वापस कूद नहीं है ।

+0

नहीं सीधे प्रश्न से संबंधित है, लेकिन आप जो watchify से एक ही प्रदर्शन के साथ बहुत कम बॉयलरप्लेट की आवश्यकता है https://github.com/ngryman/gulp-bro इस्तेमाल कर सकते हैं। – ngryman

उत्तर

6

.bundle() watchify आवरण पर नहीं बुलाया जाना चाहिए। निम्नलिखित तय सब कुछ:

'use strict'; 

var gulp = require('gulp'); 
var browserify = require('browserify'); 
var watchify = require('watchify'); 
var source = require('vinyl-source-stream'); 
var gutil = require('gulp-util'); 

var b = function() { 
    return browserify({ 
    cache: {}, 
    packageCache: {}, 
    entries: ['./app/app.js'], 
    debug: true, 
    transform: ['reactify'] 
    }); 
}; 

var w = watchify(b()); 

w.on('log', gutil.log); 

var bundle = function(pkg) { 
    return pkg.bundle() 
    .pipe(source('bundle.js')) 
    .pipe(gulp.dest('./dist')); 
}; 

gulp.task('watch', function() { 
    bundle(w); 
    w.on('update', bundle.bind(null, w)); 
}); 

gulp.task('build', bundle.bind(null, b())); 

gulp.task('default', ['watch']); 
+0

लेकिन आप इस समाधान के साथ बंडल (डब्ल्यू) के साथ निगरानी पर बंडल कहते हैं, क्या अंतर है? –

+0

@ TamásKüzdi अंतर यह है कि इस संस्करण के 'बिल्ड' कार्य में, यह घड़ी पर बंडल को कॉल नहीं करता है। ओपी में नोटिस कि कोई अलग 'डब्ल्यू' (घड़ी बंडलर) और 'बी' (ब्राउज़र बंडलर) नहीं है। – plong0