123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- // Import Dependencies.
- var gulp = require("gulp");
- var webpack = require('webpack');
- var webpackStream = require("webpack-stream");
- var debug = require("gulp-debug");
- // Read the full config.
- var config = require("../config.json");
- /**
- * Watch ts files from typescript .
- * Hack into the cli :-)
- */
- gulp.task("srcTscWatch", function() {
- // Reuse The TSC CLI from gulp to enable -w.
- process.argv[2] = "-w";
- process.argv[3] = "-p";
- process.argv[4] = "../../src/tsconfig.json";
- require("../../../node_modules/typescript/lib/tsc.js");
- return Promise.resolve();
- });
- /**
- * Watch ts files and fire repective tasks.
- */
- gulp.task("watch", gulp.series("srcTscWatch", function startWatch() {
- var interval = 1000;
- var tasks = [];
- config.modules.map(function(module) {
- if (config[module].build && config[module].build.webpack) {
- var library = config[module].libraries[0];
- if (library.noWatch) return;
- var outputDirectory = config.build.tempDirectory + config[module].build.distOutputDirectory;
- let wpconfig = require("../" + config[module].build.webpack);
- wpconfig.watch = true;
- // dev mode and absolute path sourcemaps for debugging
- wpconfig.mode = "development";
- wpconfig.output.devtoolModuleFilenameTemplate = "[absolute-resource-path]";
- //config.stats = "minimal";
- tasks.push(webpackStream(wpconfig, webpack).pipe(gulp.dest(outputDirectory)))
- }
- else {
- // Soon To Be Gone
- config[module].libraries.map(function(library) {
- if (library.webpack) {
- if (library.noWatch) return;
- var outputDirectory = config.build.tempDirectory + config[module].build.distOutputDirectory;
- let wpconfig = require("../" + library.webpack);
- wpconfig.watch = true;
- // dev mode and absolute path sourcemaps for debugging
- wpconfig.mode = "development";
- wpconfig.output.devtoolModuleFilenameTemplate = "[absolute-resource-path]";
- //config.stats = "minimal";
- tasks.push(webpackStream(wpconfig, webpack).pipe(gulp.dest(outputDirectory)))
- } else {
- tasks.push(gulp.watch(library.files, { interval: interval }, function() {
- console.log(library.output);
- return buildExternalLibrary(library, config[module], true)
- .pipe(debug());
- }));
- tasks.push(gulp.watch(library.shaderFiles, { interval: interval }, function() {
- console.log(library.output);
- return buildExternalLibrary(library, config[module], true)
- .pipe(debug())
- }));
- tasks.push(gulp.watch(library.sassFiles, { interval: interval }, function() {
- console.log(library.output);
- return buildExternalLibrary(library, config[module], true)
- .pipe(debug())
- }));
- }
- });
- }
- });
- console.log(tasks.length);
- return Promise.resolve();
- }));
|