webpack.config.js 2.5 KB

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