webpack.config.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. var theme = 'MetroMumbleLight'
  2. var path = require('path')
  3. module.exports = {
  4. entry: {
  5. index: [
  6. './app/index.js',
  7. './app/index.html'
  8. ],
  9. matrix: './app/matrix.js'
  10. },
  11. output: {
  12. filename: '[name].js',
  13. path: './dist'
  14. },
  15. module: {
  16. postLoaders: [
  17. {
  18. include: /mumble-streams\/lib\/data.js/,
  19. loader: 'transform-loader?brfs'
  20. }
  21. ],
  22. loaders: [
  23. {
  24. test: /\.js$/,
  25. exclude: /node_modules/,
  26. loader: 'babel-loader',
  27. query: {
  28. presets: ['es2015'],
  29. plugins: ['transform-runtime']
  30. }
  31. },
  32. {
  33. test: /\.html$/,
  34. loaders: [
  35. 'file-loader?name=[name].[ext]',
  36. 'extract-loader',
  37. 'html-loader?' + JSON.stringify({
  38. attrs: ['img:src', 'link:href'],
  39. interpolate: 'require',
  40. root: theme
  41. })
  42. ]
  43. },
  44. {
  45. test: /\.css$/,
  46. loaders: [
  47. 'file-loader',
  48. 'extract-loader',
  49. 'css-loader'
  50. ]
  51. },
  52. {
  53. test: /manifest\.json$|\.xml$/,
  54. loaders: [
  55. 'file-loader',
  56. 'extract-loader',
  57. 'regexp-replace-loader?' + JSON.stringify({
  58. match: {
  59. pattern: "#require\\('([^']*)'\\)",
  60. flags: 'g'
  61. },
  62. replaceWith: '"+require("$1")+"'
  63. }),
  64. 'raw-loader'
  65. ]
  66. },
  67. {
  68. test: /\.json$/,
  69. exclude: /manifest\.json$/,
  70. loader: 'json-loader'
  71. },
  72. {
  73. test: /\.(svg|png|ico)$/,
  74. loader: 'file-loader'
  75. }
  76. ]
  77. },
  78. resolve: {
  79. alias: {
  80. webworkify: 'webworkify-webpack-dropin'
  81. },
  82. root: [
  83. path.resolve('./themes/')
  84. ]
  85. },
  86. includes: {
  87. pattern: function (filepath) {
  88. return {
  89. re: /#require\((.+)\)/,
  90. index: 1
  91. }
  92. }
  93. }
  94. }