2015-05-22 2 views
4

У меня есть следующие gulpfileWatchify обнаружения изменений, но выход не меняется

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

gulp.task('browserify-watch', function() { 
    bundle(true); 
}); 

function bundle (performWatch) { 
    var bify = (performWatch === true 
     ? watchify(browserify(finalBrowserifyOptions)) 
     : browserify(finalBrowserifyOptions)); 

    if (performWatch) { 
     bify.on('update', function() { 
      console.log('Updating project files...'); 
      rebundle(bify); 
     }); 
    } 

    bify.transform(babelify.configure({ 
     compact: false 
    })); 

    function rebundle(bify) { 
     return bify.bundle() 
      .on('error', function() { 
       plugins.util.log('Browserify error'); 
      }) 
      .pipe(source('bundle.js')) 
      .pipe(buffer()) 
      .pipe(plugins.sourcemaps.init({loadMaps: true})) 
      .pipe(plugins.sourcemaps.write('./')) 
      .pipe(gulp.dest(paths.build + assets.js)); 
    } 

    return rebundle(bify); 
} 

Беда в том, что gulp browserify работает просто отлично. Тем не менее, gulp browserify-watch обнаруживает изменения, но выход никогда не обновляется.

Что я делаю неправильно?

ответ

0

Похоже, все было в порядке, мой IDE, Webstorm, кэшировал файл. Когда я посмотрел на фактический файл на коробке, все было в порядке.

1

Я столкнулся с теми же ошибками watchify при обнаружении изменений файлов (оба с глотком и ворчанием). CLI следит за работой, как ожидалось. Например:

watchify ./src/app.js -t babelify --outfile ./build/bundle.js -v 

В настоящее время я переключился на browserify-incremental. Перспектива отличается в отношении подхода к наблюдению. Вот абзац из своей страницы Github, которые encopasses это лучше всего:

browserify-пошаговый может обнаружить изменения, которые произошли в между прогонами, что означает, что он может быть использован как часть сборки систем, которые вызываются по требованию, без требуя длительного процесса. В то время как упреждающий запуск медленный для первого запуска при каждом запуске, browserify-incremental быстро каждый раз после самого первого.

Вот "переводится как" команда CLI использовать browserify инкрементный:

browserifyinc ./src/app.js -t babelify --outfile ./build/bundle.js -v 

Вот простой gulpfile.js скрипт для просмотра и [вновь] пакетирования:

var gulp = require('gulp'); 
var sourcemaps = require('gulp-sourcemaps'); 
var source = require('vinyl-source-stream'); 
var buffer = require('vinyl-buffer'); 
var browserify = require('browserify'); 
var babel = require('babelify'); 
var browserifyInc = require('browserify-incremental'); 

var bundleApp = function() { 
    var browserifyObj = browserify('./src/app.js', { debug: false, cache: {}, packageCache: {}, fullPaths: true }).transform(babel); 
    var bundler = browserifyInc(browserifyObj, {cacheFile: './browserify-cache.json'}); 

    bundler.on('time', function (time) { 
    console.log('-> Done in ' + time/1000 + ' ms'); 
    }); 

    console.log('-> Bundling...'); 

    bundler.bundle() 
    .on('error', function(err) { console.error(err); this.emit('end'); }) 
    .pipe(source('bundle.js')) 
    .pipe(buffer()) 
    .pipe(sourcemaps.init({ loadMaps: true })) 
    .pipe(sourcemaps.write('./')) 
    .pipe(gulp.dest('./build')); 
}; 


gulp.task('browserify', function() { 
    gulp.watch('./src/**/*.js', function() { 
    return bundleApp(); 
    }); 
}); 


gulp.task('default', ['browserify']); 
Смежные вопросы