gulpTasks-watch.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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 tasks = [];
  25. config.modules.map(function(module) {
  26. if (config[module].build && config[module].build.webpack) {
  27. for (var index = 0; index < config[module].libraries.length; index++) {
  28. var library = config[module].libraries[index];
  29. if (library.preventLoadLibrary) {
  30. continue;
  31. }
  32. let wpconfig = require(config[module].build.webpack);
  33. // watch on.
  34. wpconfig.watch = true;
  35. // dev mode and absolute path sourcemaps for debugging
  36. wpconfig.mode = "development";
  37. wpconfig.output.devtoolModuleFilenameTemplate = "[absolute-resource-path]";
  38. //config.stats = "minimal";
  39. var outputDirectory = config.build.tempDirectory + config[module].build.distOutputDirectory;
  40. tasks.push(webpackStream(wpconfig, webpack).pipe(gulp.dest(outputDirectory)))
  41. }
  42. }
  43. });
  44. return Promise.resolve();
  45. }));