webpack.config.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. const path = require('path');
  2. const webpack = require('webpack');
  3. const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
  4. module.exports = {
  5. context: path.resolve(__dirname, './src'),
  6. entry: {
  7. 'babylonjs-materials': path.resolve(__dirname, './src/legacy/legacy-grid.ts'),
  8. },
  9. output: {
  10. path: path.resolve(__dirname, '../dist/preview release/materialsLibrary'),
  11. filename: 'babylonjs.materials.min.js',
  12. libraryTarget: 'umd',
  13. library: {
  14. root: ["MATERIALS"],
  15. amd: "babylonjs-materials",
  16. commonjs: "babylonjs-materials"
  17. },
  18. umdNamedDefine: true
  19. },
  20. resolve: {
  21. extensions: ['.ts']
  22. },
  23. externals: [
  24. function(_, request, callback) {
  25. if (/^babylonjs.*$/i.test(request)) {
  26. callback(null, {
  27. root: "BABYLON",
  28. commonjs: "babylonjs",
  29. commonjs2: "babylonjs",
  30. amd: "babylonjs"
  31. });
  32. }
  33. else {
  34. callback();
  35. }
  36. },
  37. ],
  38. devtool: "souce-map",
  39. module: {
  40. rules: [{
  41. test: /\.tsx?$/,
  42. exclude: /node_modules/,
  43. use: [
  44. {
  45. loader: 'awesome-typescript-loader',
  46. options: {
  47. configFileName: path.resolve(__dirname, './tsconfig.json'),
  48. declaration: false
  49. }
  50. }]
  51. }]
  52. },
  53. mode: "production",
  54. plugins: [
  55. new HardSourceWebpackPlugin(),
  56. new webpack.WatchIgnorePlugin([
  57. /\.js$/,
  58. /\.d\.ts$/,
  59. /\.fx$/
  60. ])
  61. ],
  62. }