webpack.config.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. const path = require('path');
  2. const webpack = require('webpack');
  3. const DtsBundleWebpack = require('dts-bundle-webpack')
  4. const MiniCssExtractPlugin = require("mini-css-extract-plugin");
  5. module.exports = {
  6. context: __dirname,
  7. entry: {
  8. 'babylonjs-inspector': path.resolve(__dirname, './src/index.ts'),
  9. },
  10. output: {
  11. path: path.resolve(__dirname, '../dist/preview release/inspector'),
  12. filename: 'babylon.inspector.js',
  13. libraryTarget: 'umd',
  14. library: {
  15. root: "INSPECTOR",
  16. amd: "babylonjs-inspector",
  17. commonjs: "babylonjs-inspector"
  18. },
  19. umdNamedDefine: true
  20. },
  21. resolve: {
  22. extensions: [".js", '.ts'],
  23. alias: {
  24. Split: path.resolve(__dirname, '../dist/preview release/split.js')
  25. }
  26. },
  27. externals: {
  28. babylonjs: {
  29. root: "BABYLON",
  30. commonjs: "babylonjs",
  31. commonjs2: "babylonjs",
  32. amd: "babylonjs"
  33. },
  34. "babylonjs-gui": {
  35. root: ["BABYLON", "GUI"],
  36. commonjs: "babylonjs-gui",
  37. commonjs2: "babylonjs-gui",
  38. amd: "babylonjs-gui"
  39. },
  40. "babylonjs-loaders": {
  41. root: "BABYLON",
  42. commonjs: "babylonjs-loaders",
  43. commonjs2: "babylonjs-loaders",
  44. amd: "babylonjs-loaders"
  45. },
  46. "babylonjs-serializers": {
  47. root: "BABYLON",
  48. commonjs: "babylonjs-serializers",
  49. commonjs2: "babylonjs-serializers",
  50. amd: "babylonjs-serializers"
  51. }
  52. },
  53. devtool: "source-map",
  54. module: {
  55. rules: [{
  56. test: /\.tsx?$/,
  57. loader: "ts-loader",
  58. exclude: /node_modules/
  59. },
  60. {
  61. test: /\.scss$/,
  62. use: [
  63. // fallback to style-loader in development
  64. process.env.NODE_ENV !== 'production' ? 'style-loader' : MiniCssExtractPlugin.loader,
  65. "css-loader",
  66. "sass-loader"
  67. ]
  68. }]
  69. },
  70. mode: "production",
  71. devServer: {
  72. contentBase: path.join(__dirname, "dist"),
  73. compress: false,
  74. //open: true,
  75. port: 9000
  76. },
  77. plugins: [
  78. new DtsBundleWebpack({
  79. name: "babylonjs-inspector",
  80. main: path.resolve(__dirname, '../dist/preview release/inspector/build/index.d.ts'),
  81. out: path.resolve(__dirname, '../dist/preview release/inspector/babylon.inspector.module.d.ts'),
  82. baseDir: path.resolve(__dirname, '../dist/preview release/inspector/build/'),
  83. headerText: "BabylonJS Inspector"
  84. }),
  85. new webpack.WatchIgnorePlugin([
  86. /\.js$/,
  87. /\.d\.ts$/
  88. ]),
  89. new MiniCssExtractPlugin({
  90. // Options similar to the same options in webpackOptions.output
  91. // both options are optional
  92. filename: "[name].css",
  93. chunkFilename: "[id].css"
  94. })
  95. ],
  96. watchOptions: {
  97. ignored: [path.resolve(__dirname, './dist/**/*.*'), 'node_modules']
  98. }
  99. }