gulpTasks-localRun.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // Import Dependencies.
  2. var gulp = require("gulp");
  3. var connect = require("gulp-connect");
  4. var minimist = require("minimist");
  5. var fs = require('fs');
  6. var path = require('path');
  7. // Read the full config.
  8. var config = require("../../Config/config.json");
  9. // Comand line parsing.
  10. var commandLineOptions = minimist(process.argv.slice(2), {
  11. boolean: ["public"]
  12. });
  13. // Skip known extensions.
  14. var skipExtensions = [".js", ".glb", ".gltf", ".bin", ".html", ".gif", ".jpg", ".jpeg", ".png", ".dds", ".babylon", "ktx", ".map"];
  15. /**
  16. * Embedded webserver for test convenience.
  17. */
  18. gulp.task("webserver", function() {
  19. var rootRelativePath = "../../";
  20. var options = {
  21. root: rootRelativePath,
  22. port: 1338,
  23. livereload: false,
  24. middleware: function(connect, opt) {
  25. return [function (req, res, next) {
  26. var extension = path.extname(decodeURIComponent(req.originalUrl));
  27. if (req.originalUrl.indexOf(config.build.localDevES6FolderName) > -1 && skipExtensions.indexOf(extension) === -1) {
  28. // Append .js for es6 modules.
  29. if (!fs.existsSync(rootRelativePath + req.originalUrl)) {
  30. req.url += ".js";
  31. }
  32. }
  33. next();
  34. }
  35. ]
  36. }
  37. };
  38. if (commandLineOptions.public) {
  39. options.host = "0.0.0.0";
  40. }
  41. if (commandLineOptions.ssl) {
  42. options.https = true;
  43. }
  44. connect.server(options);
  45. });