webpack.config.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. var path = require('path');
  2. var webpack = require('webpack');
  3. module.exports = {
  4. entry: {
  5. 'osmd': './src/OSMD/OSMD.ts', // Main library
  6. 'demo': './demo/index.js' // Demo index
  7. },
  8. output: {
  9. path: path.resolve(__dirname, 'build'),
  10. filename: '[name].js',
  11. },
  12. resolve: {
  13. // Add '.ts' and '.tsx' as a resolvable extension.
  14. extensions: ['.webpack.js', '.web.js', '.ts', '.tsx', '.js']
  15. },
  16. module: {
  17. loaders: [
  18. // all files with a '.ts' or '.tsx' extension will be handled by 'ts-loader'
  19. { test: /\.tsx?$/, loader: 'ts-loader' },
  20. // all files with a '.js' extension. Mostly for the web demo.
  21. { test: /\.jsx?$/, loader: 'babel-loader', exclude: /(node_modules|bower_components)/,
  22. query: {
  23. presets: ['es2015']
  24. }
  25. },
  26. ]
  27. },
  28. plugins: [
  29. // build optimization plugins
  30. new webpack.LoaderOptionsPlugin({
  31. minimize: true,
  32. debug: true
  33. }),
  34. new webpack.ProvidePlugin({
  35. $: 'jquery',
  36. jQuery: 'jquery'
  37. }),
  38. new webpack.EnvironmentPlugin({
  39. NODE_ENV: 'development', // use 'development' unless process.env.NODE_ENV is defined
  40. DEBUG: false,
  41. DRAW_BOUNDING_BOX_ELEMENT: false, // Specifies the element to draw bounding boxes for (e.g. 'GraphicalLabels'). If 'all', bounding boxes are drawn for all elements.
  42. }),
  43. // FIXME: use environment variable to control uglify.
  44. // new webpack.optimize.UglifyJsPlugin({
  45. // warnings: false,
  46. // beautify: false,
  47. // compress: true,
  48. // comments: false,
  49. // sourceMap: true
  50. // })
  51. ],
  52. devServer: {
  53. contentBase: [
  54. path.join(__dirname, 'test/data'),
  55. path.join(__dirname, 'build'),
  56. path.join(__dirname, 'demo')
  57. // TODO: fill in paths for demo data
  58. ],
  59. port: 8000,
  60. compress: false,
  61. },
  62. };