gulpTasks-localRun.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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.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 options = {
  20. root: "../../.",
  21. port: 1338,
  22. livereload: false,
  23. middleware: function(connect, opt) {
  24. return [function (req, res, next) {
  25. var extension = path.extname(decodeURIComponent(req.originalUrl));
  26. if (req.originalUrl.indexOf(config.build.localDevES6FolderName) > -1 && skipExtensions.indexOf(extension) === -1) {
  27. // Append .js for es6 modules.
  28. if (!fs.existsSync("../../" + req.originalUrl)) {
  29. req.url += ".js";
  30. }
  31. }
  32. next();
  33. }
  34. ]
  35. }
  36. };
  37. if (commandLineOptions.public) {
  38. options.host = "0.0.0.0";
  39. }
  40. connect.server(options);
  41. });