浏览代码

Allow Webpacked lib to be used in node.js

sebavan 6 年之前
父节点
当前提交
515cef5de9
共有 3 个文件被更改,包括 10 次插入6 次删除
  1. 2 1
      Tools/WebpackPlugins/babylonWebpackConfig.js
  2. 6 3
      src/Engines/nullEngine.ts
  3. 2 2
      tests/nullEngine/app.js

+ 2 - 1
Tools/WebpackPlugins/babylonWebpackConfig.js

@@ -31,7 +31,8 @@ module.exports = function defaultConfig(options) {
                 amd: settings.build.umd.packageName,
                 amd: settings.build.umd.packageName,
                 commonjs: settings.build.umd.packageName
                 commonjs: settings.build.umd.packageName
             },
             },
-            umdNamedDefine: true
+            umdNamedDefine: true,
+            globalObject: '(typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this)'
         },
         },
         resolve: options.resolve || {
         resolve: options.resolve || {
             extensions: [".ts", ...options.resolveExtensions]
             extensions: [".ts", ...options.resolveExtensions]

+ 6 - 3
src/Engines/nullEngine.ts

@@ -10,6 +10,9 @@ import { Effect } from "../Materials/effect";
 import { _TimeToken } from "../Instrumentation/timeToken";
 import { _TimeToken } from "../Instrumentation/timeToken";
 import { _DepthCullingState, _StencilState, _AlphaState } from "../States/index";
 import { _DepthCullingState, _StencilState, _AlphaState } from "../States/index";
 import { Constants } from "./constants";
 import { Constants } from "./constants";
+
+declare const global: any;
+
 /**
 /**
  * Options to create the null engine
  * Options to create the null engine
  */
  */
@@ -129,15 +132,15 @@ export class NullEngine extends Engine {
         Logger.Log(`Babylon.js v${Engine.Version} - Null engine`);
         Logger.Log(`Babylon.js v${Engine.Version} - Null engine`);
 
 
         // Wrappers
         // Wrappers
+        const theCurrentGlobal = (typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : window);
         if (typeof URL === "undefined") {
         if (typeof URL === "undefined") {
-            (<any>URL) = {
+            theCurrentGlobal.URL = {
                 createObjectURL: function() { },
                 createObjectURL: function() { },
                 revokeObjectURL: function() { }
                 revokeObjectURL: function() { }
             };
             };
         }
         }
-
         if (typeof Blob === "undefined") {
         if (typeof Blob === "undefined") {
-            (<any>Blob) = function() { };
+            theCurrentGlobal.Blob = function() { };
         }
         }
     }
     }
 
 

+ 2 - 2
tests/nullEngine/app.js

@@ -1,5 +1,5 @@
-var BABYLON = require("../../dist/preview release/babylon.max");
-var LOADERS = require("../../dist/preview release/loaders/babylonjs.loaders");
+var BABYLON = require("babylonjs");
+var LOADERS = require("babylonjs-loaders");
 global.XMLHttpRequest = require('xhr2').XMLHttpRequest;
 global.XMLHttpRequest = require('xhr2').XMLHttpRequest;
 
 
 var engine = new BABYLON.NullEngine();
 var engine = new BABYLON.NullEngine();