webpack.config.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. const path = require('path');
  2. const webpack = require('webpack');
  3. module.exports = {
  4. entry: {
  5. 'viewer': './src/index.ts'
  6. },
  7. output: {
  8. path: path.resolve(__dirname, 'dist'),
  9. filename: '[name].js',
  10. libraryTarget: 'umd',
  11. library: 'BabylonViewer',
  12. umdNamedDefine: true,
  13. devtoolModuleFilenameTemplate: '[absolute-resource-path]'
  14. },
  15. resolve: {
  16. extensions: ['.ts', '.js'],
  17. alias: {
  18. "babylonjs": __dirname + '/../dist/preview release/babylon.max.js',
  19. "babylonjs-materials": __dirname + '/../dist/preview release/materialsLibrary/babylonjs.materials.js',
  20. "babylonjs-loaders": __dirname + '/../dist/preview release/loaders/babylonjs.loaders.js',
  21. "deepmerge": __dirname + '/assets/deepmerge.min.js'
  22. }
  23. },
  24. externals: {
  25. // until physics will be integrated in the viewer, ignore cannon
  26. cannon: 'CANNON',
  27. oimo: 'OIMO',
  28. './Oimo': 'OIMO'
  29. },
  30. devtool: 'source-map',
  31. plugins: [
  32. new webpack.WatchIgnorePlugin([
  33. /\.d\.ts$/
  34. ])
  35. ],
  36. module: {
  37. loaders: [{
  38. test: /\.tsx?$/,
  39. loader: 'ts-loader',
  40. exclude: /node_modules/
  41. },
  42. {
  43. test: /\.(html)$/,
  44. use: {
  45. loader: 'html-loader',
  46. options: {
  47. minimize: true
  48. }
  49. }
  50. },
  51. {
  52. test: /\.(jpe?g|png|ttf|eot|svg|woff(2)?)(\?[a-z0-9=&.]+)?$/,
  53. use: 'base64-image-loader?limit=1000&name=[name].[ext]'
  54. }]
  55. },
  56. devServer: {
  57. contentBase: path.join(__dirname, "dist"),
  58. compress: true,
  59. //open: true,
  60. port: 9000
  61. }
  62. }