|
@@ -1,29 +1,101 @@
|
|
|
const path = require('path');
|
|
|
+const webpack = require('webpack');
|
|
|
+const DtsBundleWebpack = require('dts-bundle-webpack')
|
|
|
+const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
|
|
|
|
|
module.exports = {
|
|
|
- //context: __dirname,
|
|
|
- entry: [
|
|
|
- path.resolve(__dirname, "../dist/preview release/inspector/babylon.inspector.css"),
|
|
|
- path.resolve(__dirname, "../dist/preview release/inspector/babylon.inspector.js")
|
|
|
- ],
|
|
|
+ context: __dirname,
|
|
|
+ entry: {
|
|
|
+ 'babylonjs-inspector': path.resolve(__dirname, './src/index.ts'),
|
|
|
+ },
|
|
|
output: {
|
|
|
- libraryTarget: "var",
|
|
|
- library: "INSPECTOR",
|
|
|
+ path: path.resolve(__dirname, '../dist/preview release/inspector'),
|
|
|
+ filename: 'babylon.inspector.js',
|
|
|
+ libraryTarget: 'umd',
|
|
|
+ library: {
|
|
|
+ root: "INSPECTOR",
|
|
|
+ amd: "babylonjs-inspector",
|
|
|
+ commonjs: "babylonjs-inspector"
|
|
|
+ },
|
|
|
umdNamedDefine: true
|
|
|
},
|
|
|
resolve: {
|
|
|
+ extensions: [".js", '.ts'],
|
|
|
alias: {
|
|
|
- split: '../split.js'
|
|
|
+ Split: path.resolve(__dirname, '../dist/preview release/split.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",
|
|
|
+ optional: true
|
|
|
}
|
|
|
},
|
|
|
+ devtool: "source-map",
|
|
|
module: {
|
|
|
- rules: [
|
|
|
- { test: /\.css$/, use: ['style-loader', 'css-loader'] },
|
|
|
- {
|
|
|
- test: /babylon.inspector.js/, use: [
|
|
|
- "imports-loader?Split=split", "exports-loader?INSPECTOR"]
|
|
|
-
|
|
|
- }
|
|
|
- ]
|
|
|
+ rules: [{
|
|
|
+ test: /\.tsx?$/,
|
|
|
+ loader: "ts-loader",
|
|
|
+ exclude: /node_modules/
|
|
|
+ },
|
|
|
+ {
|
|
|
+ test: /\.scss$/,
|
|
|
+ use: [
|
|
|
+ // fallback to style-loader in development
|
|
|
+ process.env.NODE_ENV !== 'production' ? 'style-loader' : MiniCssExtractPlugin.loader,
|
|
|
+ "css-loader",
|
|
|
+ "sass-loader"
|
|
|
+ ]
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ mode: "development",
|
|
|
+ devServer: {
|
|
|
+ contentBase: path.join(__dirname, "dist"),
|
|
|
+ compress: false,
|
|
|
+ //open: true,
|
|
|
+ port: 9000
|
|
|
+ },
|
|
|
+ plugins: [
|
|
|
+ new DtsBundleWebpack({
|
|
|
+ name: "babylonjs-inspector",
|
|
|
+ main: path.resolve(__dirname, '../dist/preview release/inspector/build/index.d.ts'),
|
|
|
+ out: path.resolve(__dirname, '../dist/preview release/inspector/babylon.inspector.module.d.ts'),
|
|
|
+ baseDir: path.resolve(__dirname, '../dist/preview release/inspector/build/'),
|
|
|
+ headerText: "BabylonJS Inspector"
|
|
|
+ }),
|
|
|
+ new webpack.WatchIgnorePlugin([
|
|
|
+ /\.js$/,
|
|
|
+ /\.d\.ts$/
|
|
|
+ ]),
|
|
|
+ new MiniCssExtractPlugin({
|
|
|
+ // Options similar to the same options in webpackOptions.output
|
|
|
+ // both options are optional
|
|
|
+ filename: "[name].css",
|
|
|
+ chunkFilename: "[id].css"
|
|
|
+ })
|
|
|
+ ],
|
|
|
+ watchOptions: {
|
|
|
+ ignored: [path.resolve(__dirname, './dist/**/*.*'), 'node_modules']
|
|
|
}
|
|
|
}
|