webpack.config.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
  2. const path = require('path');
  3. const webpack = require('webpack');
  4. module.exports = {
  5. entry: {
  6. 'viewer': './src/index.ts',
  7. 'viewer.min': './src/index.ts',
  8. },
  9. output: {
  10. path: path.resolve(__dirname, 'dist'),
  11. filename: '[name].js',
  12. libraryTarget: 'umd',
  13. library: 'BabylonViewer',
  14. umdNamedDefine: true,
  15. devtoolModuleFilenameTemplate: '[absolute-resource-path]'
  16. },
  17. resolve: {
  18. extensions: ['.ts', '.tsx', '.js']
  19. },
  20. devtool: 'source-map',
  21. plugins: [
  22. new webpack.WatchIgnorePlugin([
  23. /\.d\.ts$/
  24. ]),
  25. new UglifyJSPlugin({
  26. parallel: true,
  27. test: /\.min\.js$/i,
  28. })
  29. ],
  30. module: {
  31. loaders: [{
  32. test: /\.tsx?$/,
  33. loader: 'ts-loader',
  34. exclude: /node_modules/
  35. },
  36. {
  37. test: /\.(html)$/,
  38. use: {
  39. loader: 'html-loader',
  40. options: {
  41. minimize: true
  42. }
  43. }
  44. },
  45. {
  46. test: /\.(jpe?g|png|ttf|eot|svg|woff(2)?)(\?[a-z0-9=&.]+)?$/,
  47. use: 'base64-image-loader?limit=1000&name=[name].[ext]'
  48. }]
  49. },
  50. devServer: {
  51. contentBase: path.join(__dirname, "dist"),
  52. compress: true,
  53. //open: true,
  54. port: 9000
  55. }
  56. }