Skip to content

Commit 5e4fa5c

Browse files
committed
build(gulp): use gulp-watch instead of gulp.watch for watching files
gulp-watch uses chokidar which uses fsevents which is much better than fs polling or relying on fs.watch. fsevents use only one FD per watch invocation as opposed to one FD per watched directory and any subdirectory. this should improve the situation with EMFILE errors (caused by lack of available file descriptors) ---- I also tried the following: gulp-sane: requires watchman installation via brew so I didn't want to request that everyone goes throught that yet gulp-chokidar: didn't work, seems to be obsolete
1 parent fa28b28 commit 5e4fa5c

File tree

4 files changed

+694
-16
lines changed

4 files changed

+694
-16
lines changed

gulpfile.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ var madge = require('madge');
1313
var merge = require('merge');
1414
var merge2 = require('merge2');
1515
var path = require('path');
16+
var watch = require('gulp-watch');
1617

1718
var clean = require('./tools/build/clean');
1819
var transpile = require('./tools/build/transpile');
@@ -269,7 +270,7 @@ function createDocsTasks(publicBuild) {
269270

270271
gulp.task(taskPrefix, [taskPrefix + '/assets', taskPrefix + '/app', taskPrefix + '/dgeni']);
271272
gulp.task(taskPrefix + '/watch', function() {
272-
return gulp.watch('docs/app/**/*', [taskPrefix + '/app']);
273+
return watch('docs/app/**/*', [taskPrefix + '/app']);
273274
});
274275

275276
gulp.task(taskPrefix + '/test', function (done) {
@@ -337,7 +338,7 @@ gulp.task('test.unit.js', ['build.js.dev'], function (neverDone) {
337338
'check-format'
338339
);
339340

340-
gulp.watch('modules/**', function() {
341+
watch('modules/**', function() {
341342
runSequence(
342343
'!broccoli.js.dev',
343344
'!test.unit.js/karma-run',
@@ -368,7 +369,7 @@ gulp.task('test.unit.dart', ['build/tree.dart'], function (done) {
368369
'!test.unit.dart/karma-run'
369370
);
370371

371-
gulp.watch('modules/angular2/**', function() {
372+
watch('modules/angular2/**', function() {
372373
runSequence(
373374
'!build/tree.dart',
374375
'!test.unit.dart/karma-run'
@@ -420,7 +421,7 @@ gulp.task('test.unit.cjs', ['build/clean.js', 'build.tools'], function (done) {
420421

421422
buildAndTest();
422423

423-
gulp.watch('modules/**', buildAndTest);
424+
watch('modules/**', buildAndTest);
424425
});
425426

426427

@@ -441,7 +442,7 @@ gulp.task('test.unit.tools', ['build/clean.tools'], function(done) {
441442

442443
buildAndTest();
443444

444-
gulp.watch('tools/**', buildAndTest);
445+
watch('tools/**', buildAndTest);
445446
});
446447

447448

npm-shrinkwrap.clean.json

Lines changed: 265 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6213,6 +6213,271 @@
62136213
}
62146214
}
62156215
},
6216+
"gulp-watch": {
6217+
"version": "4.2.4",
6218+
"dependencies": {
6219+
"anymatch": {
6220+
"version": "1.1.0",
6221+
"dependencies": {
6222+
"minimatch": {
6223+
"version": "1.0.0",
6224+
"dependencies": {
6225+
"lru-cache": {
6226+
"version": "2.6.2"
6227+
},
6228+
"sigmund": {
6229+
"version": "1.0.0"
6230+
}
6231+
}
6232+
}
6233+
}
6234+
},
6235+
"chokidar": {
6236+
"version": "1.0.1",
6237+
"dependencies": {
6238+
"arrify": {
6239+
"version": "1.0.0"
6240+
},
6241+
"async-each": {
6242+
"version": "0.1.6"
6243+
},
6244+
"is-binary-path": {
6245+
"version": "1.0.0",
6246+
"dependencies": {
6247+
"binary-extensions": {
6248+
"version": "1.3.0"
6249+
}
6250+
}
6251+
},
6252+
"readdirp": {
6253+
"version": "1.3.0",
6254+
"dependencies": {
6255+
"graceful-fs": {
6256+
"version": "2.0.3"
6257+
},
6258+
"minimatch": {
6259+
"version": "0.2.14",
6260+
"dependencies": {
6261+
"lru-cache": {
6262+
"version": "2.6.2"
6263+
},
6264+
"sigmund": {
6265+
"version": "1.0.0"
6266+
}
6267+
}
6268+
}
6269+
}
6270+
},
6271+
"fsevents": {
6272+
"version": "0.3.6",
6273+
"dependencies": {
6274+
"nan": {
6275+
"version": "1.8.4"
6276+
}
6277+
}
6278+
}
6279+
}
6280+
},
6281+
"glob-parent": {
6282+
"version": "1.2.0"
6283+
},
6284+
"gulp-util": {
6285+
"version": "3.0.4",
6286+
"dependencies": {
6287+
"array-differ": {
6288+
"version": "1.0.0"
6289+
},
6290+
"array-uniq": {
6291+
"version": "1.0.2"
6292+
},
6293+
"beeper": {
6294+
"version": "1.0.0"
6295+
},
6296+
"chalk": {
6297+
"version": "1.0.0",
6298+
"dependencies": {
6299+
"ansi-styles": {
6300+
"version": "2.0.1"
6301+
},
6302+
"escape-string-regexp": {
6303+
"version": "1.0.3"
6304+
},
6305+
"has-ansi": {
6306+
"version": "1.0.3",
6307+
"dependencies": {
6308+
"ansi-regex": {
6309+
"version": "1.1.1"
6310+
},
6311+
"get-stdin": {
6312+
"version": "4.0.1"
6313+
}
6314+
}
6315+
},
6316+
"strip-ansi": {
6317+
"version": "2.0.1",
6318+
"dependencies": {
6319+
"ansi-regex": {
6320+
"version": "1.1.1"
6321+
}
6322+
}
6323+
},
6324+
"supports-color": {
6325+
"version": "1.3.1"
6326+
}
6327+
}
6328+
},
6329+
"dateformat": {
6330+
"version": "1.0.11",
6331+
"dependencies": {
6332+
"get-stdin": {
6333+
"version": "4.0.1"
6334+
},
6335+
"meow": {
6336+
"version": "3.1.0",
6337+
"dependencies": {
6338+
"camelcase-keys": {
6339+
"version": "1.0.0",
6340+
"dependencies": {
6341+
"camelcase": {
6342+
"version": "1.0.2"
6343+
},
6344+
"map-obj": {
6345+
"version": "1.0.1"
6346+
}
6347+
}
6348+
}
6349+
}
6350+
}
6351+
}
6352+
},
6353+
"lodash._reescape": {
6354+
"version": "3.0.0"
6355+
},
6356+
"lodash._reevaluate": {
6357+
"version": "3.0.0"
6358+
},
6359+
"lodash._reinterpolate": {
6360+
"version": "3.0.0"
6361+
},
6362+
"lodash.template": {
6363+
"version": "3.5.1",
6364+
"dependencies": {
6365+
"lodash._basecopy": {
6366+
"version": "3.0.1"
6367+
},
6368+
"lodash._basetostring": {
6369+
"version": "3.0.0"
6370+
},
6371+
"lodash._basevalues": {
6372+
"version": "3.0.0"
6373+
},
6374+
"lodash._isiterateecall": {
6375+
"version": "3.0.7"
6376+
},
6377+
"lodash.escape": {
6378+
"version": "3.0.0"
6379+
},
6380+
"lodash.isnative": {
6381+
"version": "3.0.2"
6382+
},
6383+
"lodash.keys": {
6384+
"version": "3.0.7",
6385+
"dependencies": {
6386+
"lodash.isarguments": {
6387+
"version": "3.0.2"
6388+
},
6389+
"lodash.isarray": {
6390+
"version": "3.0.2"
6391+
}
6392+
}
6393+
},
6394+
"lodash.restparam": {
6395+
"version": "3.6.1"
6396+
},
6397+
"lodash.templatesettings": {
6398+
"version": "3.1.0"
6399+
}
6400+
}
6401+
},
6402+
"multipipe": {
6403+
"version": "0.1.2",
6404+
"dependencies": {
6405+
"duplexer2": {
6406+
"version": "0.0.2",
6407+
"dependencies": {
6408+
"readable-stream": {
6409+
"version": "1.1.13",
6410+
"dependencies": {
6411+
"core-util-is": {
6412+
"version": "1.0.1"
6413+
},
6414+
"isarray": {
6415+
"version": "0.0.1"
6416+
},
6417+
"string_decoder": {
6418+
"version": "0.10.31"
6419+
},
6420+
"inherits": {
6421+
"version": "2.0.1"
6422+
}
6423+
}
6424+
}
6425+
}
6426+
}
6427+
}
6428+
},
6429+
"object-assign": {
6430+
"version": "2.0.0"
6431+
},
6432+
"replace-ext": {
6433+
"version": "0.0.1"
6434+
}
6435+
}
6436+
},
6437+
"is-glob": {
6438+
"version": "1.1.3"
6439+
},
6440+
"path-is-absolute": {
6441+
"version": "1.0.0"
6442+
},
6443+
"readable-stream": {
6444+
"version": "1.0.33",
6445+
"dependencies": {
6446+
"core-util-is": {
6447+
"version": "1.0.1"
6448+
},
6449+
"isarray": {
6450+
"version": "0.0.1"
6451+
},
6452+
"string_decoder": {
6453+
"version": "0.10.31"
6454+
},
6455+
"inherits": {
6456+
"version": "2.0.1"
6457+
}
6458+
}
6459+
},
6460+
"vinyl-file": {
6461+
"version": "1.1.1",
6462+
"dependencies": {
6463+
"graceful-fs": {
6464+
"version": "3.0.6"
6465+
},
6466+
"strip-bom": {
6467+
"version": "1.0.0",
6468+
"dependencies": {
6469+
"first-chunk-stream": {
6470+
"version": "1.0.0"
6471+
},
6472+
"is-utf8": {
6473+
"version": "0.2.0"
6474+
}
6475+
}
6476+
}
6477+
}
6478+
}
6479+
}
6480+
},
62166481
"gulp-webserver": {
62176482
"version": "0.8.8",
62186483
"dependencies": {

0 commit comments

Comments
 (0)