gulpTasks-watch.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // Import Dependencies.
  2. var gulp = require("gulp");
  3. var webpack = require('webpack');
  4. var webpackStream = require("webpack-stream");
  5. var processShaders = require("../helpers/gulp-processShaders");
  6. var uncommentShaders = require('../helpers/gulp-removeShaderComments');
  7. // Read the full config.
  8. var config = require("../config.json");
  9. /**
  10. * Watch ts files and fire repective tasks.
  11. */
  12. gulp.task("watch", function startWatch() {
  13. var tasks = [];
  14. config.modules.map(function(module) {
  15. var settings = config[module].build;
  16. if (settings && settings.webpack) {
  17. for (var index = 0; index < config[module].libraries.length; index++) {
  18. var library = config[module].libraries[index];
  19. if (library.preventLoadLibrary) {
  20. continue;
  21. }
  22. let wpconfig = require(settings.webpack);
  23. // watch on.
  24. wpconfig.watch = true;
  25. // dev mode and absolute path sourcemaps for debugging
  26. wpconfig.mode = "development";
  27. wpconfig.output.devtoolModuleFilenameTemplate = "[absolute-resource-path]";
  28. //config.stats = "minimal";
  29. var outputDirectory = config.build.tempDirectory + settings.distOutputDirectory;
  30. tasks.push(webpackStream(wpconfig, webpack).pipe(gulp.dest(outputDirectory)))
  31. tasks.push(gulp.src(settings.srcDirectory + "**/*.fx")
  32. .pipe(uncommentShaders())
  33. .pipe(processShaders(config[module].isCore))
  34. );
  35. tasks.push(
  36. gulp.watch(settings.srcDirectory + "**/*.fx", { interval: 1000 }, function() {
  37. console.log(library.output + ": Shaders.");
  38. gulp.src(settings.srcDirectory + "**/*.fx")
  39. .pipe(uncommentShaders())
  40. .pipe(processShaders(config[module].isCore));
  41. })
  42. );
  43. }
  44. }
  45. });
  46. return Promise.resolve();
  47. });