2016-10-04 158 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']); 
});