webpack.config.js 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. /*global path, __dirname, module */
  2. 'use strict'
  3. const path = require('path');
  4. const config = {
  5. entry: path.resolve(__dirname, 'src/converse.js'),
  6. externals: [{
  7. "window": "window"
  8. }],
  9. output: {
  10. path: path.resolve(__dirname, 'dist'),
  11. filename: 'converse.js'
  12. },
  13. devtool: 'source-map',
  14. module: {
  15. rules: [{
  16. test: /\.html$/,
  17. exclude: /node_modules/,
  18. use: [{
  19. loader: 'lodash-template-webpack-loader',
  20. options: {
  21. "escape": /\{\{\{([\s\S]+?)\}\}\}/g,
  22. "evaluate": /\{\[([\s\S]+?)\]\}/g,
  23. "interpolate": /\{\{([\s\S]+?)\}\}/g,
  24. // By default, template places the values from your data in the
  25. // local scope via the with statement. However, you can specify
  26. // a single variable name with the variable setting. This can
  27. // significantly improve the speed at which a template is able
  28. // to render.
  29. "variable": 'o',
  30. "prependFilenameComment": __dirname
  31. }
  32. }]
  33. }, {
  34. test: /\.js$/,
  35. exclude: /(node_modules|spec|mockup)/,
  36. use: {
  37. loader: 'babel-loader',
  38. options: {
  39. presets: [
  40. ["@babel/preset-env", {
  41. "targets": {
  42. "browsers": [">1%", "not ie 11", "not op_mini all"]
  43. }
  44. }]
  45. ]
  46. }
  47. }
  48. }],
  49. },
  50. resolve: {
  51. modules: [
  52. 'node_modules',
  53. path.resolve(__dirname, "src"),
  54. ],
  55. alias: {
  56. "IPv6": path.resolve(__dirname, "node_modules/urijs/src/IPv6"),
  57. "SecondLevelDomains": path.resolve(__dirname, "node_modules/urijs/src/SecondLevelDomains"),
  58. "awesomplete": path.resolve(__dirname, "node_modules/awesomplete-avoid-xss/awesomplete"),
  59. "backbone": path.resolve(__dirname, "node_modules/backbone/backbone"),
  60. "backbone.browserStorage": path.resolve(__dirname, "node_modules/backbone.browserStorage/backbone.browserStorage"),
  61. "backbone.nativeview": path.resolve(__dirname, "node_modules/backbone.nativeview/backbone.nativeview"),
  62. "backbone.noconflict": path.resolve(__dirname, "src/backbone.noconflict"),
  63. "backbone.orderedlistview": path.resolve(__dirname, "node_modules/backbone.overview/dist/backbone.orderedlistview"),
  64. "backbone.overview": path.resolve(__dirname, "node_modules/backbone.overview/dist/backbone.overview"),
  65. "backbone.vdomview": path.resolve(__dirname, "node_modules/backbone.vdomview/dist/backbone.vdomview"),
  66. "bootstrap": path.resolve(__dirname, "node_modules/bootstrap.native/dist/bootstrap-native-v4"),
  67. "crypto": path.resolve(__dirname, "node_modules/otr/build/dep/crypto"),
  68. "emojione": path.resolve(__dirname, "node_modules/emojione/lib/js/emojione"),
  69. "es6-promise": path.resolve(__dirname, "node_modules/es6-promise/dist/es6-promise.auto"),
  70. "filesize": path.resolve(__dirname, "node_modules/filesize/lib/filesize"),
  71. "form-utils": path.resolve(__dirname, "src/utils/form"),
  72. "i18n": path.resolve(__dirname, "src/i18n"),
  73. "jed": path.resolve(__dirname, "node_modules/jed/jed"),
  74. "jquery": path.resolve(__dirname, "src/jquery-stub"),
  75. "lodash": path.resolve(__dirname, "node_modules/lodash/lodash"),
  76. "lodash.converter": path.resolve(__dirname, "3rdparty/lodash.fp"),
  77. "lodash.fp": path.resolve(__dirname, "src/lodash.fp"),
  78. "lodash.noconflict": path.resolve(__dirname, "src/lodash.noconflict"),
  79. "message-utils": path.resolve(__dirname, "src/utils/message"),
  80. "muc-utils": path.resolve(__dirname, "src/utils/muc"),
  81. "pluggable": path.resolve(__dirname, "node_modules/pluggable.js/dist/pluggable"),
  82. "polyfill": path.resolve(__dirname, "src/polyfill"),
  83. "punycode": path.resolve(__dirname, "node_modules/urijs/src/punycode"),
  84. "sizzle": path.resolve(__dirname, "node_modules/sizzle/dist/sizzle"),
  85. "snabbdom": path.resolve(__dirname, "node_modules/snabbdom/dist/snabbdom"),
  86. "snabbdom-attributes": path.resolve(__dirname, "node_modules/snabbdom/dist/snabbdom-attributes"),
  87. "snabbdom-class": path.resolve(__dirname, "node_modules/snabbdom/dist/snabbdom-class"),
  88. "snabbdom-dataset": path.resolve(__dirname, "node_modules/snabbdom/dist/snabbdom-dataset"),
  89. "snabbdom-eventlisteners": path.resolve(__dirname, "node_modules/snabbdom/dist/snabbdom-eventlisteners"),
  90. "snabbdom-props": path.resolve(__dirname, "node_modules/snabbdom/dist/snabbdom-props"),
  91. "snabbdom-style": path.resolve(__dirname, "node_modules/snabbdom/dist/snabbdom-style"),
  92. "strophe": path.resolve(__dirname, "node_modules/strophe.js/strophe"),
  93. "strophe.ping": path.resolve(__dirname, "node_modules/strophejs-plugin-ping/strophe.ping"),
  94. "strophe.rsm": path.resolve(__dirname, "node_modules/strophejs-plugin-rsm/strophe.rsm"),
  95. "tovnode": path.resolve(__dirname, "node_modules/snabbdom/dist/tovnode"),
  96. "underscore": path.resolve(__dirname, "src/underscore-shim"),
  97. "uri": path.resolve(__dirname, "node_modules/urijs/src/URI"),
  98. "utils": path.resolve(__dirname, "src/utils/core"),
  99. "vdom-parser": path.resolve(__dirname, "node_modules/vdom-parser/dist"),
  100. "xss": path.resolve(__dirname, "node_modules/xss/dist/xss"),
  101. "xss.noconflict": path.resolve(__dirname, "node_modules/xss.noconflict"),
  102. "converse-bookmarks": path.resolve(__dirname, "src/converse-bookmarks"),
  103. "converse-chatboxes": path.resolve(__dirname, "src/converse-chatboxes"),
  104. "converse-caps": path.resolve(__dirname, "src/converse-caps"),
  105. "converse-chatview": path.resolve(__dirname, "src/converse-chatview"),
  106. "converse-controlbox": path.resolve(__dirname, "src/converse-controlbox"),
  107. "converse-core": path.resolve(__dirname, "src/converse-core"),
  108. "converse-disco": path.resolve(__dirname, "src/converse-disco"),
  109. "converse-dragresize": path.resolve(__dirname, "src/converse-dragresize"),
  110. "converse-embedded": path.resolve(__dirname, "src/converse-embedded"),
  111. "converse-fullscreen": path.resolve(__dirname, "src/converse-fullscreen"),
  112. "converse-headline": path.resolve(__dirname, "src/converse-headline"),
  113. "converse-mam": path.resolve(__dirname, "src/converse-mam"),
  114. "converse-message-view": path.resolve(__dirname, "src/converse-message-view"),
  115. "converse-minimize": path.resolve(__dirname, "src/converse-minimize"),
  116. "converse-modal": path.resolve(__dirname, "src/converse-modal"),
  117. "converse-muc": path.resolve(__dirname, "src/converse-muc"),
  118. "converse-muc-views": path.resolve(__dirname, "src/converse-muc-views"),
  119. "converse-notification": path.resolve(__dirname, "src/converse-notification"),
  120. "converse-ping": path.resolve(__dirname, "src/converse-ping"),
  121. "converse-profile": path.resolve(__dirname, "src/converse-profile"),
  122. "converse-register": path.resolve(__dirname, "src/converse-register"),
  123. "converse-roomslist": path.resolve(__dirname, "src/converse-roomslist"),
  124. "converse-roster": path.resolve(__dirname, "src/converse-roster"),
  125. "converse-rosterview": path.resolve(__dirname, "src/converse-rosterview"),
  126. "converse-singleton": path.resolve(__dirname, "src/converse-singleton"),
  127. "converse-vcard": path.resolve(__dirname, "src/converse-vcard")
  128. }
  129. }
  130. }
  131. module.exports = config;