webpack.nodeps.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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: 'swc-loader',
  21. options: {
  22. jsc: {
  23. target: 'es5',
  24. parser: {
  25. syntax: 'ecmascript',
  26. jsx: false,
  27. dynamicImport: false,
  28. },
  29. }
  30. }
  31. }
  32. },
  33. {
  34. test: /\.scss$/,
  35. use: [
  36. MiniCssExtractPlugin.loader,
  37. 'css-loader',
  38. {
  39. loader: 'sass-loader',
  40. options: {
  41. api: "modern-compiler",
  42. sassOptions: {
  43. silenceDeprecations: ['color-functions', 'global-builtin', 'import', 'mixed-decls'],
  44. includePaths: [path.resolve(__dirname, '../node_modules/')]
  45. }
  46. }
  47. }
  48. ]
  49. }]
  50. },
  51. externals: [{
  52. '@converse/skeletor': 'skeletor',
  53. 'filesize': 'filesize',
  54. 'jed': 'jed',
  55. 'lit': 'lit',
  56. 'lit-html': 'lit-html',
  57. 'localforage': 'localforage',
  58. 'lodash': 'lodash',
  59. 'lodash.noconflict': 'lodash.noconflict',
  60. 'pluggable.js': 'pluggable',
  61. 'sizzle': 'sizzle',
  62. 'strophe.js': 'strophe',
  63. 'urijs': 'urijs',
  64. 'window': 'window',
  65. }]
  66. });