webpack.config.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. const path = require('path');
  2. const webpack = require('webpack');
  3. const MiniCssExtractPlugin = require("mini-css-extract-plugin");
  4. const CleanWebpackPlugin = require('clean-webpack-plugin');
  5. module.exports = {
  6. context: __dirname,
  7. entry: {
  8. 'babylonjs-inspector': path.resolve(__dirname, './src/legacy.ts'),
  9. },
  10. output: {
  11. path: path.resolve(__dirname, '../dist/preview release/inspector'),
  12. filename: 'babylon.inspector.bundle.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', ".tsx"],
  23. },
  24. externals: {
  25. babylonjs: {
  26. root: "BABYLON",
  27. commonjs: "babylonjs",
  28. commonjs2: "babylonjs",
  29. amd: "babylonjs"
  30. },
  31. "babylonjs-gui": {
  32. root: ["BABYLON", "GUI"],
  33. commonjs: "babylonjs-gui",
  34. commonjs2: "babylonjs-gui",
  35. amd: "babylonjs-gui"
  36. },
  37. "babylonjs-loaders": {
  38. root: "BABYLON",
  39. commonjs: "babylonjs-loaders",
  40. commonjs2: "babylonjs-loaders",
  41. amd: "babylonjs-loaders"
  42. },
  43. "babylonjs-serializers": {
  44. root: "BABYLON",
  45. commonjs: "babylonjs-serializers",
  46. commonjs2: "babylonjs-serializers",
  47. amd: "babylonjs-serializers"
  48. }
  49. },
  50. devtool: "source-map",
  51. module: {
  52. rules: [{
  53. test: /\.tsx?$/,
  54. loader: "ts-loader",
  55. exclude: /node_modules/
  56. },
  57. {
  58. test: /\.scss$/,
  59. use: [
  60. // fallback to style-loader in development
  61. process.env.NODE_ENV !== 'production' ? 'style-loader' : MiniCssExtractPlugin.loader,
  62. "css-loader",
  63. "sass-loader"
  64. ]
  65. }, {
  66. test: /\.css$/,
  67. use: ['style-loader', 'css-loader']
  68. }]
  69. },
  70. mode: "production",
  71. devServer: {
  72. contentBase: path.join(__dirname, "dist"),
  73. compress: false,
  74. //open: true,
  75. port: 9000
  76. },
  77. performance: {
  78. hints: false
  79. },
  80. plugins: [
  81. new CleanWebpackPlugin([
  82. path.resolve(__dirname, './src/**/*.js'),
  83. path.resolve(__dirname, './src/**/*.map')
  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. }