2016-10-04 134 views
-1

所以考虑以下一饮而尽文件:咕嘟咕嘟不观看

var gulp  = require('gulp'); 
var source  = require('vinyl-source-stream'); 
var browserify = require('browserify'); 
var babelify = require("babelify"); 
var watch  = require('gulp-watch'); 

gulp.task('make:engine', function() { 
    return browserify({entries: [ 
     './src/index.js' 
     ]}) 
     .transform("babelify") 
     .bundle() 
     .pipe(source('engine.js')) 
     .pipe(gulp.dest('dist/')); 
}); 

gulp.task('make:example', function() { 
    return browserify({entries: [ 
     './examples/index.js' 
     ]}) 
     .transform("babelify") 
     .bundle() 
     .pipe(source('compiled-example.js')) 
     .pipe(gulp.dest('dist/example/')); 
}); 

gulp.task('watch', ['make:engine', 'make:example'], function(){ 
    return watch('*.js', ['make:engine', 'make:example']); 
}); 

gulp watch吐出:

[15:06:01] Using gulpfile ~/Documents/ice-cream-engine/gulpfile.js 
[15:06:01] Starting 'make:engine'... 
[15:06:01] Starting 'make:example'... 
[15:06:03] Finished 'make:example' after 1.57 s 
[15:06:03] Finished 'make:engine' after 1.6 s 
[15:06:03] Starting 'watch'... 

任何js文件,如果我做了编辑并保存文件时,终端没有按” t更新说它正在制作引擎或示例。

项目目录如下所示:

enter image description here

什么我做错了,使得它不会实际在任何JS文件更改重新编译?

+0

有一个很好的机会,它(默认)需要NFS(谷歌它)事件监视更改,而不是扫描所有文件的正则表达式匹配每0.x秒(这需要更多的CPU)。如果你的操作系统(或虚拟机)不支持这个,你必须禁用该选项。 –

+0

@StephanBijzitter这个答案根本没有帮助。我使用的MAC OSX和你的答案不提供任何有用的。 – TheWebs

+2

好吧,这是一个有点侵略性。 OSX支持NFS事件,所以你很棒。注意确定Gulp如何处理小球,但你也可以尝试使用'**/*。js'或'src/**/*。js'。 –

回答

3

根据你的屏幕截图,唯一的.js文件与你传递给watch的glob匹配的是gulpfile.js

如果你想观看下srcexample目录中的所有.js文件,你可以使用以下命令:

gulp.task('watch', ['make:engine', 'make:example'], function(){ 
    return watch(['src/**/*.js', 'examples/**/*.js'], ['make:engine', 'make:example']); 
});