Ver código fonte

Merge pull request #3088 from bghgary/gulpfile-fixes

Small gulp/npm configuration fixes
David Catuhe 7 anos atrás
pai
commit
9fb5972f1d
2 arquivos alterados com 78 adições e 66 exclusões
  1. 58 47
      Tools/Gulp/gulpfile.js
  2. 20 19
      Tools/Gulp/package.json

+ 58 - 47
Tools/Gulp/gulpfile.js

@@ -9,23 +9,23 @@ var addModuleExports = require("./gulp-addModuleExports");
 var merge2 = require("merge2");
 var concat = require("gulp-concat");
 var rename = require("gulp-rename");
-var cleants = require('gulp-clean-ts-extends');
-var changedInPlace = require('gulp-changed-in-place');
-var runSequence = require('run-sequence');
+var cleants = require("gulp-clean-ts-extends");
+var changedInPlace = require("gulp-changed-in-place");
+var runSequence = require("run-sequence");
 var replace = require("gulp-replace");
 var uncommentShader = require("./gulp-removeShaderComments");
-var expect = require('gulp-expect-file');
-var optimisejs = require('gulp-optimize-js');
-var webserver = require('gulp-webserver');
-var path = require('path');
-var sass = require('gulp-sass');
-var webpack = require('webpack-stream');
+var expect = require("gulp-expect-file");
+var optimisejs = require("gulp-optimize-js");
+var webserver = require("gulp-webserver");
+var path = require("path");
+var sass = require("gulp-sass");
+var webpack = require("webpack-stream");
 
 var config = require("./config.json");
 
-var del = require('del');
+var del = require("del");
 
-var debug = require('gulp-debug');
+var debug = require("gulp-debug");
 var includeShadersStream;
 var shadersStream;
 var workersStream;
@@ -39,9 +39,9 @@ var referenceSearchRegex = /\/\/\/ <reference.*/g;
  */
 var tsConfig = {
     noResolve: true,
-    target: 'ES5',
+    target: "ES5",
     declarationFiles: true,
-    typescript: require('typescript'),
+    typescript: require("typescript"),
     experimentalDecorators: true,
     isolatedModules: false,
     noImplicitAny: true,
@@ -54,9 +54,9 @@ var tsProject = typescript.createProject(tsConfig);
 
 var externalTsConfig = {
     noResolve: false,
-    target: 'ES5',
+    target: "ES5",
     declarationFiles: true,
-    typescript: require('typescript'),
+    typescript: require("typescript"),
     experimentalDecorators: true,
     isolatedModules: false,
     noImplicitAny: true,
@@ -66,6 +66,11 @@ var externalTsConfig = {
     strictNullChecks: true
 };
 
+var minimist = require("minimist");
+var commandLineOptions = minimist(process.argv.slice(2), {
+    boolean: "public"
+});
+
 function processDependency(kind, dependency, filesToLoad) {
     if (dependency.dependUpon) {
         for (var i = 0; i < dependency.dependUpon.length; i++) {
@@ -125,13 +130,13 @@ function determineFilesToProcess(kind) {
  */
 function shadersName(filename) {
     return path.basename(filename)
-        .replace('.fragment', 'Pixel')
-        .replace('.vertex', 'Vertex')
-        .replace('.fx', 'Shader');
+        .replace(".fragment", "Pixel")
+        .replace(".vertex", "Vertex")
+        .replace(".fx", "Shader");
 }
 
 function includeShadersName(filename) {
-    return path.basename(filename).replace('.fx', '');
+    return path.basename(filename).replace(".fx", "");
 }
 
 /*
@@ -218,7 +223,7 @@ gulp.task("build", ["shaders"], function () {
 /*
 * Compiles all typescript files and creating a js and a declaration file.
 */
-gulp.task('typescript-compile', function () {
+gulp.task("typescript-compile", function () {
     var tsResult = gulp.src(config.typescript)
         .pipe(sourcemaps.init())
         .pipe(tsProject());
@@ -226,11 +231,11 @@ gulp.task('typescript-compile', function () {
     //If this gulp task is running on travis, file the build!
     if (process.env.TRAVIS) {
         var error = false;
-        tsResult.on('error', function () {
+        tsResult.on("error", function () {
             error = true;
-        }).on('end', function () {
+        }).on("end", function () {
             if (error) {
-                console.log('Typescript compile failed');
+                console.log("Typescript compile failed");
                 process.exit(1);
             }
         });
@@ -249,7 +254,7 @@ gulp.task('typescript-compile', function () {
                 {
                     includeContent: false,
                     sourceRoot: (filePath) => {
-                        return '';
+                        return "";
                     }
                 }))
             .pipe(gulp.dest(config.build.srcOutputDirectory))
@@ -267,7 +272,7 @@ var buildExternalLibraries = function (settings) {
     let mergedTasks = merge2(tasks);
 
     if (settings.build.buildAsModule) {
-        mergedTasks.on('end', function () {
+        mergedTasks.on("end", function () {
             //generate js file list
             let files = settings.libraries.filter(function (lib) {
                 return !lib.doNotIncludeInBundle;
@@ -278,7 +283,7 @@ var buildExternalLibraries = function (settings) {
             var outputDirectory = config.build.outputDirectory + settings.build.distOutputDirectory;
 
             let srcTask = gulp.src(files)
-                .pipe(concat(settings.build.outputFilename + '.js'))
+                .pipe(concat(settings.build.outputFilename + ".js"))
                 .pipe(replace(extendsSearchRegex, ""))
                 .pipe(replace(decorateSearchRegex, ""))
                 .pipe(replace(referenceSearchRegex, ""))
@@ -295,7 +300,7 @@ var buildExternalLibraries = function (settings) {
             });
 
             let dtsTask = gulp.src(dtsFiles)
-                .pipe(concat(settings.build.outputFilename + '.module.d.ts'))
+                .pipe(concat(settings.build.outputFilename + ".module.d.ts"))
                 .pipe(replace(referenceSearchRegex, ""))
                 .pipe(addDtsExport(settings.build.moduleDeclaration, settings.build.moduleName, true, settings.build.extendsRoot))
                 .pipe(gulp.dest(outputDirectory));
@@ -314,25 +319,25 @@ var buildExternalLibrary = function (library, settings, watch) {
 
     var includeShader = gulp.src(library.shadersIncludeFiles || [], { base: settings.build.srcOutputDirectory })
         .pipe(uncommentShader())
-        .pipe(appendSrcToVariable("BABYLON.Effect.IncludesShadersStore", includeShadersName, library.output + '.include.fx'))
+        .pipe(appendSrcToVariable("BABYLON.Effect.IncludesShadersStore", includeShadersName, library.output + ".include.fx"))
         .pipe(gulp.dest(settings.build.srcOutputDirectory));
 
     var shader = gulp.src(library.shaderFiles || [], { base: settings.build.srcOutputDirectory })
         .pipe(uncommentShader())
-        .pipe(appendSrcToVariable("BABYLON.Effect.ShadersStore", shadersName, library.output + '.fx'))
+        .pipe(appendSrcToVariable("BABYLON.Effect.ShadersStore", shadersName, library.output + ".fx"))
         .pipe(gulp.dest(settings.build.srcOutputDirectory));
 
     var dev = tsProcess.js
         .pipe(sourcemaps.write("./", {
             includeContent: false,
             sourceRoot: (filePath) => {
-                return '';
+                return "";
             }
         })).pipe(gulp.dest(settings.build.srcOutputDirectory));
 
     var outputDirectory = config.build.outputDirectory + settings.build.distOutputDirectory;
     var css = gulp.src(library.sassFiles || [])
-        .pipe(sass().on('error', sass.logError))
+        .pipe(sass().on("error", sass.logError))
         .pipe(concat(library.output.replace(".js", ".css")))
         .pipe(gulp.dest(outputDirectory));
 
@@ -394,7 +399,7 @@ var buildExternalLibrary = function (library, settings, watch) {
         }
 
         if (library.webpack) {
-            return waitAll.on('end', function () {
+            return waitAll.on("end", function () {
                 webpack(require(library.webpack))
                     .pipe(rename(library.output.replace(".js", ".bundle.js")))
                     .pipe(gulp.dest(outputDirectory))
@@ -467,22 +472,23 @@ gulp.task("typescript-all", function (cb) {
 /**
  * Watch ts files and fire repective tasks.
  */
-gulp.task('watch', [], function () {
-    var tasks = [gulp.watch(config.typescript, ['typescript-compile'])];
+gulp.task("watch", [], function () {
+    var interval = 1000;
+    var tasks = [gulp.watch(config.typescript, { interval: interval}, ["typescript-compile"])];
 
     config.modules.map(function (module) {
         config[module].libraries.map(function (library) {
-            tasks.push(gulp.watch(library.files, function () {
+            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, function () {
+            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, function () {
+            tasks.push(gulp.watch(library.sassFiles, { interval: interval}, function () {
                 console.log(library.output);
                 return buildExternalLibrary(library, config[module], true)
                     .pipe(debug())
@@ -496,30 +502,35 @@ gulp.task('watch', [], function () {
 /**
  * Embedded local dev env management.
  */
-gulp.task('deployLocalDev', function () {
-    gulp.src('../../localDev/template/**.*')
-        .pipe(gulp.dest('../../localDev/src/'));
+gulp.task("deployLocalDev", function () {
+    gulp.src("../../localDev/template/**.*")
+        .pipe(gulp.dest("../../localDev/src/"));
 });
 
 /**
  * Embedded webserver for test convenience.
  */
-gulp.task('webserver', function () {
-    gulp.src('../../.').pipe(webserver({
-        host: '0.0.0.0',
+gulp.task("webserver", function () {
+    var options = {
         port: 1338,
         livereload: false
-    }));
+    };
+
+    if (commandLineOptions.public) {
+        options.host = "0.0.0.0";
+    }
+
+    gulp.src("../../.").pipe(webserver(options));
 });
 
 /**
  * Combine Webserver and Watch as long as vscode does not handle multi tasks.
  */
-gulp.task('run', ['watch', 'webserver'], function () {
+gulp.task("run", ["watch", "webserver"], function () {
 });
 
-gulp.task('clean-JS-MAP', function () {
+gulp.task("clean-JS-MAP", function () {
     return del([
-        '../../src/**/*.js.map', '../../src/**/*.js'
+        "../../src/**/*.js.map", "../../src/**/*.js"
     ], { force: true });
 });

+ 20 - 19
Tools/Gulp/package.json

@@ -9,32 +9,33 @@
   "readme": "https://github.com/BabylonJS/Babylon.js/edit/master/readme.md",
   "license": "(Apache-2.0)",
   "devDependencies": {
+    "css-loader": "^0.25.0",
+    "del": "2.2.2",
+    "exports-loader": "^0.6.3",
     "gulp": "^3.8.11",
-    "gulp-uglify": "^2.1.2",
-    "gulp-sourcemaps": "~1.9.1",
-    "typescript": "~2.5.3",
-    "gulp-typescript": "^3.2.2",
-    "through2": "~0.6.5",
-    "gulp-util": "~3.0.4",
-    "gulp-concat": "~2.5.2",
-    "merge2": "~0.3.5",
-    "gulp-rename": "~1.2.2",
-    "gulp-clean-ts-extends": "~0.1.1",
     "gulp-changed-in-place": "2.0.3",
-    "run-sequence": "~1.1.0",
-    "gulp-replace": "~0.5.3",
+    "gulp-clean-ts-extends": "~0.1.1",
+    "gulp-concat": "~2.5.2",
     "gulp-content-to-variable": "^0.1.0",
+    "gulp-debug": "^3.0.0",
     "gulp-expect-file": "^0.0.7",
     "gulp-optimize-js": "^1.0.2",
-    "gulp-webserver": "^0.9.1",
-    "gulp-debug": "^3.0.0",
+    "gulp-rename": "~1.2.2",
+    "gulp-replace": "~0.5.3",
     "gulp-sass": "3.1.0",
-    "webpack-stream": "^3.2.0",
-    "css-loader": "^0.25.0",
-    "style-loader": "^0.13.1",
-    "exports-loader": "^0.6.3",
+    "gulp-sourcemaps": "~1.9.1",
+    "gulp-typescript": "^3.2.2",
+    "gulp-uglify": "^2.1.2",
+    "gulp-util": "~3.0.4",
+    "gulp-webserver": "^0.9.1",
     "imports-loader": "^0.7.0",
-    "del": "2.2.2"
+    "merge2": "~0.3.5",
+    "minimist": "^1.2.0",
+    "run-sequence": "~1.1.0",
+    "style-loader": "^0.13.1",
+    "through2": "~0.6.5",
+    "typescript": "~2.5.3",
+    "webpack-stream": "^3.2.0"
   },
   "scripts": {
     "install": "npm --prefix ../../Playground/ install ../../Playground/ && gulp typescript-compile && gulp typescript-libraries && gulp deployLocalDev"