webpack.config.js 3.0 KB

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