webpack.nodeps.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /* global module, __dirname */
  2. const MiniCssExtractPlugin = require('mini-css-extract-plugin');
  3. const common = require("./webpack.common.js");
  4. const path = require('path');
  5. const { merge} = require("webpack-merge");
  6. module.exports = merge(common, {
  7. mode: "production",
  8. entry: {
  9. "converse-no-dependencies": path.resolve(__dirname, "../src/entry.js"),
  10. },
  11. plugins: [
  12. new MiniCssExtractPlugin({filename: 'tmp.css'})
  13. ],
  14. module: {
  15. rules: [
  16. {
  17. test: /\.js$/,
  18. include: /src/,
  19. use: {
  20. loader: 'babel-loader',
  21. options: {
  22. presets: [
  23. ["@babel/preset-env", {
  24. "targets": {
  25. "browsers": ["ie 11"]
  26. }
  27. }]
  28. ]
  29. }
  30. }
  31. },
  32. {
  33. test: /\.scss$/,
  34. use: [
  35. MiniCssExtractPlugin.loader,
  36. 'css-loader',
  37. {
  38. loader: 'sass-loader',
  39. options: {
  40. api: "modern-compiler",
  41. sassOptions: {
  42. silenceDeprecations: ['color-functions', 'global-builtin', 'import', 'mixed-decls'],
  43. includePaths: [path.resolve(__dirname, '../node_modules/')]
  44. }
  45. }
  46. }
  47. ]
  48. }]
  49. },
  50. externals: [{
  51. '@converse/skeletor': 'skeletor',
  52. 'filesize': 'filesize',
  53. 'jed': 'jed',
  54. 'lit': 'lit',
  55. 'lit-html': 'lit-html',
  56. 'localforage': 'localforage',
  57. 'lodash': 'lodash',
  58. 'lodash.noconflict': 'lodash.noconflict',
  59. 'pluggable.js': 'pluggable',
  60. 'sizzle': 'sizzle',
  61. 'strophe.js': 'strophe',
  62. 'urijs': 'urijs',
  63. 'window': 'window',
  64. }]
  65. });