gulpTasks-watch.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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.devtool = "nosources-source-map";
  28. wpconfig.output.devtoolModuleFilenameTemplate = (info) => {
  29. return `${info.resourcePath}`.replace('Tools/Gulp/../../', '');
  30. };
  31. var outputDirectory = config.build.tempDirectory + settings.distOutputDirectory;
  32. tasks.push(webpackStream(wpconfig, webpack).pipe(gulp.dest(outputDirectory)))
  33. tasks.push(gulp.src(settings.srcDirectory + "**/*.fx")
  34. .pipe(uncommentShaders())
  35. .pipe(processShaders(config[module].isCore))
  36. );
  37. tasks.push(
  38. gulp.watch(settings.srcDirectory + "**/*.fx", { interval: 1000 }, function() {
  39. console.log(library.output + ": Shaders.");
  40. gulp.src(settings.srcDirectory + "**/*.fx")
  41. .pipe(uncommentShaders())
  42. .pipe(processShaders(config[module].isCore));
  43. })
  44. );
  45. }
  46. }
  47. });
  48. return Promise.resolve();
  49. });