webpack.config.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. var path = require('path');
  2. module.exports = {
  3. mode: 'development',
  4. entry: {
  5. index: [
  6. './app/index.js',
  7. './app/index.html'
  8. ],
  9. config: './app/config.js'
  10. },
  11. output: {
  12. path: path.join(__dirname, 'dist'),
  13. filename: '[name].js'
  14. },
  15. module: {
  16. rules: [
  17. {
  18. test: /\.js$/,
  19. exclude: /node_modules/,
  20. use: {
  21. loader: 'babel-loader',
  22. options: {
  23. presets: ['@babel/preset-env'],
  24. plugins: ['@babel/plugin-transform-runtime']
  25. }
  26. }
  27. },
  28. {
  29. test: /\.html$/,
  30. use: [
  31. 'file-loader?name=[name].[ext]',
  32. 'extract-loader',
  33. 'html-loader?' + JSON.stringify({
  34. attrs: ['img:src', 'link:href'],
  35. interpolate: 'require'
  36. })
  37. ]
  38. },
  39. {
  40. test: /\.css$/,
  41. use: [
  42. 'file-loader',
  43. 'extract-loader',
  44. 'css-loader'
  45. ]
  46. },
  47. {
  48. test: /manifest\.json$|\.xml$/,
  49. use: [
  50. 'file-loader',
  51. 'extract-loader',
  52. 'regexp-replace-loader?' + JSON.stringify({
  53. match: {
  54. pattern: "#require\\('([^']*)'\\)",
  55. flags: 'g'
  56. },
  57. replaceWith: '"+require("$1")+"'
  58. }),
  59. 'raw-loader'
  60. ]
  61. },
  62. {
  63. test: /\.(svg|png|ico)$/,
  64. use: [
  65. 'file-loader'
  66. ]
  67. },
  68. {
  69. enforce: 'post',
  70. test: /mumble-streams\/lib\/data.js/,
  71. use: [
  72. 'transform-loader?brfs'
  73. ]
  74. }
  75. ]
  76. },
  77. resolve: {
  78. alias: {
  79. webworkify: 'webworkify-webpack'
  80. }
  81. },
  82. target: 'web'
  83. }