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.

80 lines
1.7 KiB

  1. /**
  2. * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
  3. * SPDX-License-Identifier: AGPL-3.0-or-later
  4. */
  5. const nextcloudWebpackRules = require('@nextcloud/webpack-vue-config/rules')
  6. const BabelLoaderExcludeNodeModulesExcept = require('babel-loader-exclude-node-modules-except')
  7. const { mergeWithRules } = require('webpack-merge')
  8. // Replace rules with the same modules
  9. module.exports = mergeWithRules({
  10. module: {
  11. rules: {
  12. test: 'match',
  13. loader: 'replace',
  14. options: 'replace',
  15. use: 'replace',
  16. },
  17. },
  18. })(
  19. {
  20. module: {
  21. // Reuse @nextcloud/webpack-vue-config/rules
  22. rules: Object.values(nextcloudWebpackRules),
  23. },
  24. },
  25. {
  26. module: {
  27. rules: [
  28. {
  29. test: /\.js$/,
  30. loader: 'esbuild-loader',
  31. options: {
  32. // Implicitly set as JS loader for only JS parts of Vue SFCs will be transpiled
  33. loader: 'js',
  34. target: 'es2020',
  35. },
  36. exclude: BabelLoaderExcludeNodeModulesExcept([
  37. '@nextcloud/event-bus',
  38. 'ansi-regex',
  39. 'fast-xml-parser',
  40. 'hot-patcher',
  41. 'nextcloud-vue-collections',
  42. 'semver',
  43. 'strip-ansi',
  44. 'tributejs',
  45. 'webdav',
  46. ]),
  47. },
  48. {
  49. test: /\.tsx?$/,
  50. use: [{
  51. loader: 'esbuild-loader',
  52. options: {
  53. // Implicitly set as TS loader so only <script lang="ts"> Vue SFCs will be transpiled
  54. loader: 'ts',
  55. target: 'es2020',
  56. },
  57. }],
  58. },
  59. {
  60. test: /\.wasm$/i,
  61. type: 'asset/resource',
  62. },
  63. {
  64. test: /\.tflite$/i,
  65. type: 'asset/resource',
  66. },
  67. {
  68. test: /\.worker\.js$/,
  69. use: { loader: 'worker-loader' },
  70. },
  71. {
  72. resourceQuery: /raw/,
  73. type: 'asset/source',
  74. },
  75. ],
  76. },
  77. },
  78. )