webpack.config.js 2.2 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-materials': path.resolve(__dirname, './src/legacy.ts'),
  9. },
  10. output: {
  11. path: path.resolve(__dirname, '../dist/preview release/materialsLibrary'),
  12. filename: 'babylonjs.materials.min.js',
  13. libraryTarget: 'umd',
  14. library: {
  15. root: ["MATLIB"],
  16. amd: "babylonjs-materials",
  17. commonjs: "babylonjs-materials"
  18. },
  19. umdNamedDefine: true
  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. exclude: /node_modules/,
  37. use: [
  38. {
  39. // loader: 'ts-loader',
  40. // options: {
  41. // onlyCompileBundledFiles: true,
  42. // experimentalFileCaching: true
  43. // }
  44. loader: 'awesome-typescript-loader',
  45. options: {
  46. configFileName: '../../materialsLibrary/tsconfig.json'
  47. }
  48. }]
  49. },
  50. {
  51. test: /\.fx$/,
  52. use: [{
  53. loader: path.resolve(__dirname, '../Tools/WebpackShaderLoader/index.js')
  54. }]
  55. }]
  56. },
  57. mode: "production",
  58. devServer: {
  59. contentBase: path.join(__dirname, "dist"),
  60. compress: false,
  61. //open: true,
  62. port: 9000
  63. },
  64. plugins: [
  65. new CleanWebpackPlugin([
  66. path.resolve(__dirname, './src/**/*.js'),
  67. path.resolve(__dirname, './src/**/*.map')
  68. ]),
  69. new webpack.WatchIgnorePlugin([
  70. /\.js$/,
  71. /\.d\.ts$/
  72. ])
  73. ],
  74. watchOptions: {
  75. ignored: [path.resolve(__dirname, './dist/**/*.*'), 'node_modules']
  76. }
  77. }