webpack.config.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. const path = require('path');
  2. const webpack = require('webpack');
  3. module.exports = /*[
  4. {
  5. entry: {
  6. 'assets': './src/assets/index.ts'
  7. },
  8. output: {
  9. path: path.resolve(__dirname, 'dist'),
  10. filename: '[name].js',
  11. devtoolModuleFilenameTemplate: '[relative-resource-path]'
  12. },
  13. plugins: [
  14. new webpack.WatchIgnorePlugin([
  15. /\.d\.ts$/
  16. ])
  17. ],
  18. resolve: {
  19. extensions: ['.ts', '.js']
  20. },
  21. module: {
  22. loaders: [{
  23. test: /\.tsx?$/,
  24. loader: 'ts-loader',
  25. exclude: /node_modules/
  26. },
  27. {
  28. test: /\.(html)$/,
  29. use: {
  30. loader: 'html-loader',
  31. options: {
  32. minimize: true
  33. }
  34. }
  35. },
  36. {
  37. test: /\.(jpe?g|png|ttf|eot|svg?)(\?[a-z0-9=&.]+)?$/,
  38. use: 'base64-image-loader?limit=1000&name=[name].[ext]'
  39. },
  40. {
  41. test: /\.(woff|ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
  42. loader: 'base64-font-loader'
  43. }]
  44. }
  45. },*/
  46. {
  47. entry: {
  48. 'viewer': './src/index.ts',
  49. },
  50. output: {
  51. path: path.resolve(__dirname, 'dist'),
  52. filename: '[name].js',
  53. libraryTarget: 'umd',
  54. library: 'BabylonViewer',
  55. umdNamedDefine: true,
  56. devtoolModuleFilenameTemplate: '[absolute-resource-path]'
  57. },
  58. resolve: {
  59. extensions: ['.ts', '.js'],
  60. alias: {
  61. "babylonjs": __dirname + '/../dist/preview release/babylon.max.js',
  62. "babylonjs-materials": __dirname + '/../dist/preview release/materialsLibrary/babylonjs.materials.js',
  63. "babylonjs-loaders": __dirname + '/../dist/preview release/loaders/babylonjs.loaders.js',
  64. "babylonjs-viewer-assets": __dirname + '/src/assets/index.ts'
  65. }
  66. },
  67. externals: {
  68. // until physics will be integrated in the viewer, ignore cannon
  69. cannon: 'CANNON',
  70. oimo: 'OIMO',
  71. earcut: true
  72. },
  73. mode: "development",
  74. devtool: 'source-map',
  75. plugins: [
  76. new webpack.WatchIgnorePlugin([
  77. /\.d\.ts$/
  78. ])
  79. ],
  80. module: {
  81. rules: [{
  82. test: /\.tsx?$/,
  83. loader: 'ts-loader',
  84. exclude: /node_modules/
  85. },
  86. {
  87. test: /\.(html)$/,
  88. use: {
  89. loader: 'html-loader',
  90. options: {
  91. minimize: true
  92. }
  93. }
  94. },
  95. {
  96. test: /\.(jpe?g|png|ttf|eot|svg?)(\?[a-z0-9=&.]+)?$/,
  97. use: 'base64-image-loader?limit=1000&name=[name].[ext]'
  98. },
  99. {
  100. test: /\.(woff|ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
  101. loader: 'base64-inline-loader?limit=1000&name=[name].[ext]'
  102. }]
  103. },
  104. devServer: {
  105. contentBase: path.join(__dirname, "dist"),
  106. compress: false,
  107. //open: true,
  108. port: 9000
  109. }
  110. }
  111. //]