Kaynağa Gözat

Allow Webpacked lib to be used in node.js

sebavan 6 yıl önce
ebeveyn
işleme
515cef5de9

+ 2 - 1
Tools/WebpackPlugins/babylonWebpackConfig.js

@@ -31,7 +31,8 @@ module.exports = function defaultConfig(options) {
                 amd: 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 || {
             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 { _DepthCullingState, _StencilState, _AlphaState } from "../States/index";
 import { Constants } from "./constants";
+
+declare const global: any;
+
 /**
  * Options to create the null engine
  */
@@ -129,15 +132,15 @@ export class NullEngine extends Engine {
         Logger.Log(`Babylon.js v${Engine.Version} - Null engine`);
 
         // Wrappers
+        const theCurrentGlobal = (typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : window);
         if (typeof URL === "undefined") {
-            (<any>URL) = {
+            theCurrentGlobal.URL = {
                 createObjectURL: function() { },
                 revokeObjectURL: function() { }
             };
         }
-
         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;
 
 var engine = new BABYLON.NullEngine();