webpack.config.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. const path = require('path');
  2. const webpack = require('webpack');
  3. const CleanWebpackPlugin = require('clean-webpack-plugin');
  4. module.exports = {
  5. context: __dirname,
  6. entry: {
  7. 'babylonjs-gui': path.resolve(__dirname, './legacy/legacy.ts'),
  8. },
  9. output: {
  10. path: path.resolve(__dirname, '../dist/preview release/gui'),
  11. filename: 'babylon.gui.min.js',
  12. libraryTarget: 'umd',
  13. library: {
  14. root: ["BABYLON", "GUI"],
  15. amd: "babylonjs-gui",
  16. commonjs: "babylonjs-gui"
  17. },
  18. umdNamedDefine: true
  19. },
  20. resolve: {
  21. extensions: [".js", '.ts']
  22. },
  23. externals: {
  24. babylonjs: {
  25. root: "BABYLON",
  26. commonjs: "babylonjs",
  27. commonjs2: "babylonjs",
  28. amd: "babylonjs"
  29. }
  30. },
  31. devtool: "source-map",
  32. module: {
  33. rules: [{
  34. test: /\.tsx?$/,
  35. loader: 'awesome-typescript-loader',
  36. options: {
  37. configFileName: '../../gui/tsconfig.json',
  38. declarationDir: '../../dist/preview release/gui/build'
  39. }
  40. }]
  41. },
  42. mode: "production",
  43. devServer: {
  44. contentBase: path.join(__dirname, "dist"),
  45. compress: false,
  46. //open: true,
  47. port: 9000
  48. },
  49. plugins: [
  50. new CleanWebpackPlugin([
  51. path.resolve(__dirname, './src/**/*.js'),
  52. path.resolve(__dirname, './src/**/*.map')
  53. ]),
  54. new webpack.WatchIgnorePlugin([
  55. /\.js$/,
  56. /\.d\.ts$/,
  57. /\.fx$/
  58. ])
  59. ],
  60. watchOptions: {
  61. ignored: [path.resolve(__dirname, './dist/**/*.*'), 'node_modules']
  62. }
  63. }