webpack.config.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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. optional: true
  52. }
  53. },
  54. devtool: "source-map",
  55. module: {
  56. rules: [{
  57. test: /\.tsx?$/,
  58. loader: "ts-loader",
  59. exclude: /node_modules/
  60. },
  61. {
  62. test: /\.scss$/,
  63. use: [
  64. // fallback to style-loader in development
  65. process.env.NODE_ENV !== 'production' ? 'style-loader' : MiniCssExtractPlugin.loader,
  66. "css-loader",
  67. "sass-loader"
  68. ]
  69. }]
  70. },
  71. mode: "development",
  72. devServer: {
  73. contentBase: path.join(__dirname, "dist"),
  74. compress: false,
  75. //open: true,
  76. port: 9000
  77. },
  78. plugins: [
  79. new DtsBundleWebpack({
  80. name: "babylonjs-inspector",
  81. main: path.resolve(__dirname, '../dist/preview release/inspector/build/index.d.ts'),
  82. out: path.resolve(__dirname, '../dist/preview release/inspector/babylon.inspector.module.d.ts'),
  83. baseDir: path.resolve(__dirname, '../dist/preview release/inspector/build/'),
  84. headerText: "BabylonJS Inspector"
  85. }),
  86. new webpack.WatchIgnorePlugin([
  87. /\.js$/,
  88. /\.d\.ts$/
  89. ]),
  90. new MiniCssExtractPlugin({
  91. // Options similar to the same options in webpackOptions.output
  92. // both options are optional
  93. filename: "[name].css",
  94. chunkFilename: "[id].css"
  95. })
  96. ],
  97. watchOptions: {
  98. ignored: [path.resolve(__dirname, './dist/**/*.*'), 'node_modules']
  99. }
  100. }