gulpTasks-watch.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. // Import Dependencies.
  2. var gulp = require("gulp");
  3. var webpack = require('webpack');
  4. var webpackStream = require("webpack-stream");
  5. var debug = require("gulp-debug");
  6. // Read the full config.
  7. var config = require("../config.json");
  8. /**
  9. * Watch ts files from typescript .
  10. * Hack into the cli :-)
  11. */
  12. gulp.task("srcTscWatch", function() {
  13. // Reuse The TSC CLI from gulp to enable -w.
  14. process.argv[2] = "-w";
  15. process.argv[3] = "-p";
  16. process.argv[4] = "../../src/tsconfig.json";
  17. require("../../../node_modules/typescript/lib/tsc.js");
  18. return Promise.resolve();
  19. });
  20. /**
  21. * Watch ts files and fire repective tasks.
  22. */
  23. gulp.task("watch", gulp.series("srcTscWatch", function startWatch() {
  24. var interval = 1000;
  25. var tasks = [];
  26. config.modules.map(function(module) {
  27. if (config[module].build && config[module].build.webpack) {
  28. var library = config[module].libraries[0];
  29. if (library.noWatch) return;
  30. var outputDirectory = config.build.tempDirectory + config[module].build.distOutputDirectory;
  31. let wpconfig = require("../" + config[module].build.webpack);
  32. wpconfig.watch = true;
  33. // dev mode and absolute path sourcemaps for debugging
  34. wpconfig.mode = "development";
  35. wpconfig.output.devtoolModuleFilenameTemplate = "[absolute-resource-path]";
  36. //config.stats = "minimal";
  37. tasks.push(webpackStream(wpconfig, webpack).pipe(gulp.dest(outputDirectory)))
  38. }
  39. else {
  40. // Soon To Be Gone
  41. config[module].libraries.map(function(library) {
  42. if (library.webpack) {
  43. if (library.noWatch) return;
  44. var outputDirectory = config.build.tempDirectory + config[module].build.distOutputDirectory;
  45. let wpconfig = require("../" + library.webpack);
  46. wpconfig.watch = true;
  47. // dev mode and absolute path sourcemaps for debugging
  48. wpconfig.mode = "development";
  49. wpconfig.output.devtoolModuleFilenameTemplate = "[absolute-resource-path]";
  50. //config.stats = "minimal";
  51. tasks.push(webpackStream(wpconfig, webpack).pipe(gulp.dest(outputDirectory)))
  52. } else {
  53. tasks.push(gulp.watch(library.files, { interval: interval }, function() {
  54. console.log(library.output);
  55. return buildExternalLibrary(library, config[module], true)
  56. .pipe(debug());
  57. }));
  58. tasks.push(gulp.watch(library.shaderFiles, { interval: interval }, function() {
  59. console.log(library.output);
  60. return buildExternalLibrary(library, config[module], true)
  61. .pipe(debug())
  62. }));
  63. tasks.push(gulp.watch(library.sassFiles, { interval: interval }, function() {
  64. console.log(library.output);
  65. return buildExternalLibrary(library, config[module], true)
  66. .pipe(debug())
  67. }));
  68. }
  69. });
  70. }
  71. });
  72. console.log(tasks.length);
  73. return Promise.resolve();
  74. }));