webpack.config.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. const path = require('path');
  2. const webpack = require('webpack');
  3. const DtsBundleWebpack = require('dts-bundle-webpack')
  4. module.exports = {
  5. context: __dirname,
  6. entry: {
  7. 'babylonjs-gui': path.resolve(__dirname, './src/index.ts'),
  8. },
  9. output: {
  10. path: path.resolve(__dirname, '../dist/preview release/gui'),
  11. filename: 'babylon.gui.js',
  12. libraryTarget: 'umd',
  13. library: {
  14. root: ["BABYLON", "GUI"],
  15. amd: "babylonjs-gui",
  16. commonjs: "babylonjs-gui"
  17. },
  18. umdNamedDefine: true,
  19. //devtoolModuleFilenameTemplate: "[absolute-resource-path]"
  20. },
  21. resolve: {
  22. extensions: [".js", '.ts']
  23. },
  24. externals: {
  25. babylonjs: {
  26. root: "BABYLON",
  27. commonjs: "babylonjs",
  28. commonjs2: "babylonjs",
  29. amd: "babylonjs"
  30. }
  31. },
  32. devtool: "source-map",
  33. module: {
  34. rules: [{
  35. test: /\.tsx?$/,
  36. loader: "ts-loader",
  37. exclude: /node_modules/
  38. },
  39. {
  40. test: /\.fx$/,
  41. use: [{
  42. loader: path.resolve(__dirname, '../Tools/WebpackShaderLoader/index.js')
  43. }]
  44. }]
  45. },
  46. mode: "production",
  47. devServer: {
  48. contentBase: path.join(__dirname, "dist"),
  49. compress: false,
  50. //open: true,
  51. port: 9000
  52. },
  53. plugins: [
  54. new DtsBundleWebpack({
  55. name: "babylonjs-gui",
  56. main: path.resolve(__dirname, '../dist/preview release/gui/build/index.d.ts'),
  57. out: path.resolve(__dirname, '../dist/preview release/gui/babylon.gui.module.d.ts'),
  58. baseDir: path.resolve(__dirname, '../dist/preview release/gui/build/'),
  59. headerText: "BabylonJS GUI"
  60. }),
  61. new webpack.WatchIgnorePlugin([
  62. /\.js$/,
  63. /\.d\.ts$/
  64. ])
  65. ],
  66. watchOptions: {
  67. ignored: [path.resolve(__dirname, './dist/**/*.*'), 'node_modules']
  68. }
  69. }