webpack.config.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. var theme = '../themes/MetroMumbleLight'
  2. var path = require('path');
  3. module.exports = {
  4. mode: 'development',
  5. entry: {
  6. index: [
  7. './app/index.js',
  8. './app/index.html'
  9. ],
  10. config: './app/config.js',
  11. theme: './app/theme.js',
  12. matrix: './app/matrix.js'
  13. },
  14. devtool: "cheap-source-map",
  15. output: {
  16. path: path.join(__dirname, 'dist'),
  17. filename: '[name].js'
  18. },
  19. module: {
  20. rules: [
  21. {
  22. test: /\.js$/,
  23. exclude: /node_modules/,
  24. use: {
  25. loader: 'babel-loader',
  26. options: {
  27. presets: ['@babel/preset-env'],
  28. plugins: ['@babel/plugin-transform-runtime']
  29. }
  30. }
  31. },
  32. {
  33. test: /\.html$/,
  34. use: [
  35. {
  36. loader: 'file-loader',
  37. options: { 'name': '[name].[ext]' }
  38. },
  39. {
  40. loader: "extract-loader"
  41. },
  42. {
  43. loader: 'html-loader',
  44. options: {
  45. attrs: ['img:src', 'link:href'],
  46. //interpolate: 'require',
  47. root: theme
  48. }
  49. }
  50. ]
  51. },
  52. {
  53. test: /\.css$/,
  54. use: [
  55. 'file-loader',
  56. 'extract-loader',
  57. 'css-loader'
  58. ]
  59. },
  60. {
  61. test: /\.scss$/,
  62. use: [
  63. 'file-loader?name=[hash].css',
  64. 'extract-loader',
  65. 'css-loader',
  66. 'sass-loader'
  67. ]
  68. },
  69. {
  70. type: 'javascript/auto',
  71. test: /manifest\.json$|\.xml$/,
  72. use: [
  73. 'file-loader',
  74. 'extract-loader',
  75. {
  76. loader: 'regexp-replace-loader',
  77. options: {
  78. match: {
  79. pattern: "#require\\('([^']*)'\\)",
  80. flags: 'g'
  81. },
  82. replaceWith: '"+require("$1")+"'
  83. }
  84. },
  85. 'raw-loader'
  86. ]
  87. },
  88. {
  89. test: /\.(svg|png|ico)$/,
  90. use: [
  91. 'file-loader'
  92. ]
  93. },
  94. {
  95. test: /worker\.js$/,
  96. use: { loader: 'worker-loader' }
  97. },
  98. {
  99. enforce: 'post',
  100. test: /mumble-streams\/lib\/data.js/,
  101. use: [
  102. 'transform-loader?brfs'
  103. ]
  104. }
  105. ]
  106. },
  107. target: 'web'
  108. }