webpack.common.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. var path = require('path')
  2. var HtmlWebpackPlugin = require('html-webpack-plugin')
  3. var webpack = require('webpack')
  4. module.exports = {
  5. entry: {
  6. 'osmd': './src/OSMD/OSMD.ts', // Main library
  7. 'demo': './demo/index.js' // Demo index
  8. },
  9. output: {
  10. path: path.resolve(__dirname, 'build'),
  11. filename: '[name].js'
  12. },
  13. resolve: {
  14. // Add '.ts' and '.tsx' as a resolvable extension.
  15. extensions: ['.ts', '.tsx', '.js']
  16. },
  17. module: {
  18. rules: [
  19. // all files with a '.ts' or '.tsx' extension will be handled by 'ts-loader'
  20. {
  21. test: /\.ts$/,
  22. loader: 'ts-loader',
  23. exclude: /(node_modules|bower_components)/
  24. }
  25. ]
  26. },
  27. plugins: [
  28. new webpack.ProvidePlugin({
  29. $: 'jquery',
  30. jQuery: 'jquery'
  31. }),
  32. new webpack.EnvironmentPlugin({
  33. STATIC_FILES_SUBFOLDER: false, // Set to other directory if NOT using webpack-dev-server
  34. DEBUG: false,
  35. 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.
  36. }),
  37. // add a demo page to the build folder
  38. new HtmlWebpackPlugin({
  39. template: 'demo/index.html',
  40. favicon: 'demo/favicon.ico',
  41. title: 'OpenSheetMusicDisplay Demo'
  42. })
  43. ],
  44. devServer: {
  45. contentBase: [
  46. path.join(__dirname, 'test/data'),
  47. path.join(__dirname, 'build'),
  48. path.join(__dirname, 'demo')
  49. ],
  50. port: 8000,
  51. compress: false
  52. }
  53. }