Browse Source

Babylon Externals

sebavan 6 years ago
parent
commit
965b149cbd

+ 42 - 0
Tools/WebpackPlugins/babylonExternals.js

@@ -0,0 +1,42 @@
+module.exports = function nodeExternals(options) {
+    options = options || {};
+
+    // return an externals function
+    return function(_, request, callback) {
+        if (/^babylonjs-serializers.*$/i.test(request)) {
+            callback(null, {
+                root: "BABYLON",
+                commonjs: "babylonjs-serializers",
+                commonjs2: "babylonjs-serializers",
+                amd: "babylonjs-serializers"
+            });
+        }
+        else if (/^babylonjs-loaders.*$/i.test(request)) {
+            callback(null, {
+                root: "BABYLON",
+                commonjs: "babylonjs-loaders",
+                commonjs2: "babylonjs-loaders",
+                amd: "babylonjs-loaders"
+            });
+        }
+        else if (/^babylonjs-gui.*$/i.test(request)) {
+            callback(null, {
+                root: ["BABYLON", "GUI"],
+                commonjs: "babylonjs-gui",
+                commonjs2: "babylonjs-gui",
+                amd: "babylonjs-gui"
+            });
+        }
+        else if (/^babylonjs.*$/i.test(request)) {
+            callback(null, {
+                root: "BABYLON",
+                commonjs: "babylonjs",
+                commonjs2: "babylonjs",
+                amd: "babylonjs"
+            });
+        }
+        else {
+            callback();
+        }
+    }
+};

+ 5 - 11
gui/webpack.config.js

@@ -1,5 +1,6 @@
 const path = require('path');
 const path = require('path');
 const webpack = require('webpack');
 const webpack = require('webpack');
+const babylonExternals = require('../Tools/WebpackPlugins/babylonExternals');
 const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
 const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
 
 
 module.exports = {
 module.exports = {
@@ -21,17 +22,7 @@ module.exports = {
     resolve: {
     resolve: {
         extensions: [".ts"]
         extensions: [".ts"]
     },
     },
-    externals: [
-        {
-            babylonjs: {
-                root: "BABYLON",
-                commonjs: "babylonjs",
-                commonjs2: "babylonjs",
-                amd: "babylonjs"
-            }
-        },
-        /^babylonjs.*$/i
-    ],
+    externals: [babylonExternals()],
     devtool: "source-map",
     devtool: "source-map",
     module: {
     module: {
         rules: [{
         rules: [{
@@ -44,6 +35,9 @@ module.exports = {
         }]
         }]
     },
     },
     mode: "production",
     mode: "production",
+    performance: {
+        hints: false
+    },
     plugins: [
     plugins: [
         new HardSourceWebpackPlugin(),
         new HardSourceWebpackPlugin(),
         new webpack.WatchIgnorePlugin([
         new webpack.WatchIgnorePlugin([

+ 2 - 29
inspector/webpack.config.js

@@ -1,5 +1,6 @@
 const path = require('path');
 const path = require('path');
 const webpack = require('webpack');
 const webpack = require('webpack');
+const babylonExternals = require('../Tools/WebpackPlugins/babylonExternals');
 const MiniCssExtractPlugin = require("mini-css-extract-plugin");
 const MiniCssExtractPlugin = require("mini-css-extract-plugin");
 const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
 const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
 
 
@@ -25,35 +26,7 @@ module.exports = {
             "re-resizable$": path.resolve(__dirname, '../node_modules/re-resizable/lib/index.es5.js')
             "re-resizable$": path.resolve(__dirname, '../node_modules/re-resizable/lib/index.es5.js')
         }
         }
     },
     },
-    externals: [
-            {
-            babylonjs: {
-                root: "BABYLON",
-                commonjs: "babylonjs",
-                commonjs2: "babylonjs",
-                amd: "babylonjs"
-            },
-            "babylonjs-gui": {
-                root: ["BABYLON", "GUI"],
-                commonjs: "babylonjs-gui",
-                commonjs2: "babylonjs-gui",
-                amd: "babylonjs-gui"
-            },
-            "babylonjs-loaders": {
-                root: "BABYLON",
-                commonjs: "babylonjs-loaders",
-                commonjs2: "babylonjs-loaders",
-                amd: "babylonjs-loaders"
-            },
-            "babylonjs-serializers": {
-                root: "BABYLON",
-                commonjs: "babylonjs-serializers",
-                commonjs2: "babylonjs-serializers",
-                amd: "babylonjs-serializers"
-            }
-        },
-        /^babylonjs.*$/i
-    ],
+    externals: [babylonExternals()],
     devtool: "source-map",
     devtool: "source-map",
     module: {
     module: {
         rules: [{
         rules: [{

+ 10 - 20
loaders/webpack.config.js

@@ -1,5 +1,6 @@
 const path = require('path');
 const path = require('path');
 const webpack = require('webpack');
 const webpack = require('webpack');
+const babylonExternals = require('../Tools/WebpackPlugins/babylonExternals');
 const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
 const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
 
 
 module.exports = {
 module.exports = {
@@ -21,33 +22,22 @@ module.exports = {
     resolve: {
     resolve: {
         extensions: ['.ts']
         extensions: ['.ts']
     },
     },
-    externals: [
-        {
-            babylonjs: {
-                root: "BABYLON",
-                commonjs: "babylonjs",
-                commonjs2: "babylonjs",
-                amd: "babylonjs"
-            }
-        },
-        /^babylonjs.*$/i
-    ],
+    externals: [babylonExternals()],
     devtool: "source-map",
     devtool: "source-map",
     module: {
     module: {
         rules: [{
         rules: [{
             test: /\.tsx?$/,
             test: /\.tsx?$/,
-            exclude: /node_modules/,
-            use: [
-            {
-                loader: 'awesome-typescript-loader',
-                options: {
-                    configFileName: path.resolve(__dirname, './tsconfig.json'),
-                    declaration: false
-                }
-            }]
+            loader: 'awesome-typescript-loader',
+            options: {
+                configFileName: path.resolve(__dirname, './tsconfig.json'),
+                declaration: false
+            }
         }]
         }]
     },
     },
     mode: "production",
     mode: "production",
+    performance: {
+        hints: false
+    },
     plugins: [
     plugins: [
         new HardSourceWebpackPlugin(),
         new HardSourceWebpackPlugin(),
         new webpack.WatchIgnorePlugin([
         new webpack.WatchIgnorePlugin([

+ 10 - 24
materialsLibrary/webpack.config.js

@@ -1,5 +1,6 @@
 const path = require('path');
 const path = require('path');
 const webpack = require('webpack');
 const webpack = require('webpack');
+const babylonExternals = require('../Tools/WebpackPlugins/babylonExternals');
 const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
 const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
 
 
 module.exports = {
 module.exports = {
@@ -21,37 +22,22 @@ module.exports = {
     resolve: {
     resolve: {
         extensions: ['.ts']
         extensions: ['.ts']
     },
     },
-    externals: [
-        function(_, request, callback) {
-            if (/^babylonjs.*$/i.test(request)) {
-                callback(null, {
-                    root: "BABYLON",
-                    commonjs: "babylonjs",
-                    commonjs2: "babylonjs",
-                    amd: "babylonjs"
-                });
-            }
-            else {
-                callback();
-            }
-        },
-    ],
+    externals: [babylonExternals()],
     devtool: "souce-map",
     devtool: "souce-map",
     module: {
     module: {
         rules: [{
         rules: [{
             test: /\.tsx?$/,
             test: /\.tsx?$/,
-            exclude: /node_modules/,
-            use: [
-            {
-                loader: 'awesome-typescript-loader',
-                options: {
-                    configFileName: path.resolve(__dirname, './tsconfig.json'),
-                    declaration: false
-                }
-            }]
+            loader: 'awesome-typescript-loader',
+            options: {
+                configFileName: path.resolve(__dirname, './tsconfig.json'),
+                declaration: false
+            }
         }]
         }]
     },
     },
     mode: "production",
     mode: "production",
+    performance: {
+        hints: false
+    },
     plugins: [
     plugins: [
         new HardSourceWebpackPlugin(),
         new HardSourceWebpackPlugin(),
         new webpack.WatchIgnorePlugin([
         new webpack.WatchIgnorePlugin([

+ 5 - 11
postProcessLibrary/webpack.config.js

@@ -1,5 +1,6 @@
 const path = require('path');
 const path = require('path');
 const webpack = require('webpack');
 const webpack = require('webpack');
+const babylonExternals = require('../Tools/WebpackPlugins/babylonExternals');
 const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
 const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
 
 
 module.exports = {
 module.exports = {
@@ -21,17 +22,7 @@ module.exports = {
     resolve: {
     resolve: {
         extensions: ['.ts']
         extensions: ['.ts']
     },
     },
-    externals: [
-        {
-            babylonjs: {
-                root: "BABYLON",
-                commonjs: "babylonjs",
-                commonjs2: "babylonjs",
-                amd: "babylonjs"
-            }
-        },
-        /^babylonjs.*$/i
-    ],
+    externals: [babylonExternals()],
     devtool: "source-map",
     devtool: "source-map",
     module: {
     module: {
         rules: [{
         rules: [{
@@ -44,6 +35,9 @@ module.exports = {
         }]
         }]
     },
     },
     mode: "production",
     mode: "production",
+    performance: {
+        hints: false
+    },
     plugins: [
     plugins: [
         new HardSourceWebpackPlugin(),
         new HardSourceWebpackPlugin(),
         new webpack.WatchIgnorePlugin([
         new webpack.WatchIgnorePlugin([

+ 5 - 11
proceduralTexturesLibrary/webpack.config.js

@@ -1,5 +1,6 @@
 const path = require('path');
 const path = require('path');
 const webpack = require('webpack');
 const webpack = require('webpack');
+const babylonExternals = require('../Tools/WebpackPlugins/babylonExternals');
 const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
 const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
 
 
 module.exports = {
 module.exports = {
@@ -21,17 +22,7 @@ module.exports = {
     resolve: {
     resolve: {
         extensions: ['.ts']
         extensions: ['.ts']
     },
     },
-    externals: [
-        {
-            babylonjs: {
-                root: "BABYLON",
-                commonjs: "babylonjs",
-                commonjs2: "babylonjs",
-                amd: "babylonjs"
-            }
-        },
-        /^babylonjs.*$/i
-    ],
+    externals: [babylonExternals()],
     devtool: "source-map",
     devtool: "source-map",
     module: {
     module: {
         rules: [{
         rules: [{
@@ -44,6 +35,9 @@ module.exports = {
         }]
         }]
     },
     },
     mode: "production",
     mode: "production",
+    performance: {
+        hints: false
+    },
     plugins: [
     plugins: [
         new HardSourceWebpackPlugin(),
         new HardSourceWebpackPlugin(),
         new webpack.WatchIgnorePlugin([
         new webpack.WatchIgnorePlugin([

+ 10 - 20
serializers/webpack.config.js

@@ -1,5 +1,6 @@
 const path = require('path');
 const path = require('path');
 const webpack = require('webpack');
 const webpack = require('webpack');
+const babylonExternals = require('../Tools/WebpackPlugins/babylonExternals');
 const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
 const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
 
 
 module.exports = {
 module.exports = {
@@ -21,33 +22,22 @@ module.exports = {
     resolve: {
     resolve: {
         extensions: ['.ts']
         extensions: ['.ts']
     },
     },
-    externals: [
-        {
-            babylonjs: {
-                root: "BABYLON",
-                commonjs: "babylonjs",
-                commonjs2: "babylonjs",
-                amd: "babylonjs"
-            }
-        },
-        /^babylonjs.*$/i
-    ],
+    externals: [babylonExternals()],
     devtool: "source-map",
     devtool: "source-map",
     module: {
     module: {
         rules: [{
         rules: [{
             test: /\.tsx?$/,
             test: /\.tsx?$/,
-            exclude: /node_modules/,
-            use: [
-            {
-                loader: 'awesome-typescript-loader',
-                options: {
-                    configFileName: path.resolve(__dirname, './tsconfig.json'),
-                    declaration: false
-                }
-            }]
+            loader: 'awesome-typescript-loader',
+            options: {
+                configFileName: path.resolve(__dirname, './tsconfig.json'),
+                declaration: false
+            }
         }]
         }]
     },
     },
     mode: "production",
     mode: "production",
+    performance: {
+        hints: false
+    },
     plugins: [
     plugins: [
         new HardSourceWebpackPlugin(),
         new HardSourceWebpackPlugin(),
         new webpack.WatchIgnorePlugin([
         new webpack.WatchIgnorePlugin([

+ 3 - 0
src/webpack.config.js

@@ -33,6 +33,9 @@ module.exports = {
         }]
         }]
     },
     },
     mode: "production",
     mode: "production",
+    performance: {
+        hints: false
+    },
     plugins: [
     plugins: [
         new HardSourceWebpackPlugin(),
         new HardSourceWebpackPlugin(),
         new webpack.WatchIgnorePlugin([
         new webpack.WatchIgnorePlugin([