You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.1 KiB

  1. const path = require('path')
  2. const webpackConfig = require('@nextcloud/webpack-vue-config')
  3. const webpackRules = require('@nextcloud/webpack-vue-config/rules')
  4. const BabelLoaderExcludeNodeModulesExcept = require('babel-loader-exclude-node-modules-except')
  5. const TerserPlugin = require('terser-webpack-plugin')
  6. webpackConfig.entry = {
  7. 'admin-settings': path.join(__dirname, 'src', 'mainAdminSettings.js'),
  8. collections: path.join(__dirname, 'src', 'collections.js'),
  9. main: path.join(__dirname, 'src', 'main.js'),
  10. 'files-sidebar': [
  11. path.join(__dirname, 'src', 'mainFilesSidebar.js'),
  12. path.join(__dirname, 'src', 'mainFilesSidebarLoader.js'),
  13. ],
  14. 'public-share-auth-sidebar': path.join(__dirname, 'src', 'mainPublicShareAuthSidebar.js'),
  15. 'public-share-sidebar': path.join(__dirname, 'src', 'mainPublicShareSidebar.js'),
  16. flow: path.join(__dirname, 'src', 'flow.js'),
  17. dashboard: path.join(__dirname, 'src', 'dashboard.js'),
  18. deck: path.join(__dirname, 'src', 'deck.js'),
  19. }
  20. // Edit JS rule
  21. webpackRules.RULE_JS.exclude = BabelLoaderExcludeNodeModulesExcept([
  22. '@juliushaertl/vue-richtext',
  23. '@nextcloud/event-bus',
  24. '@nextcloud/vue-dashboard',
  25. 'ansi-regex',
  26. 'color.js',
  27. 'fast-xml-parser',
  28. 'hot-patcher',
  29. 'nextcloud-vue-collections',
  30. 'semver',
  31. 'strip-ansi',
  32. 'tributejs',
  33. 'vue-resize',
  34. 'webdav',
  35. ])
  36. // Replaces rules array
  37. webpackConfig.module.rules = Object.values(webpackRules)
  38. webpackConfig.module.rules.push({
  39. /**
  40. * webrtc-adapter main module does no longer provide
  41. * "module.exports", which is expected by some elements using it
  42. * (like "attachmediastream"), so it needs to be added back with
  43. * a plugin.
  44. */
  45. test: /node_modules\/webrtc-adapter\/.*\.js$/,
  46. loader: 'babel-loader',
  47. options: {
  48. plugins: ['add-module-exports'],
  49. presets: [
  50. /**
  51. * From "add-module-exports" documentation:
  52. * "webpack doesn't perform commonjs transformation for
  53. * codesplitting. Need to set commonjs conversion."
  54. */
  55. ['@babel/env', { modules: 'commonjs' }],
  56. ],
  57. },
  58. })
  59. webpackConfig.optimization.minimizer = [
  60. new TerserPlugin({
  61. terserOptions: {
  62. output: {
  63. comments: false,
  64. },
  65. },
  66. extractComments: false,
  67. }),
  68. ]
  69. module.exports = webpackConfig