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.

webpack.prod.js 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. const path = require('path');
  2. const TerserPlugin = require('terser-webpack-plugin');
  3. const frontendConf = {
  4. mode: 'production',
  5. target: "web",
  6. entry: path.resolve(__dirname, 'Client.ts'),
  7. output: {
  8. path: path.resolve(__dirname, '../lib'),
  9. filename: 'Frontend.js',
  10. libraryTarget: 'commonjs',
  11. },
  12. module: {
  13. rules: [
  14. { test: /\.ts?$/, loader: "ts-loader" }
  15. ]
  16. },
  17. resolve: {
  18. extensions: [".ts", ".tsx", ".js"]
  19. },
  20. optimization: {
  21. minimize: true,
  22. minimizer: [
  23. new TerserPlugin({
  24. parallel: true,
  25. exclude: [
  26. /\.\/(.*)\/.ts/,
  27. /\.\/(.*).ts/,
  28. ],
  29. }),
  30. ],
  31. },
  32. }
  33. const backendConf = {
  34. mode: 'production',
  35. target: "node",
  36. entry: path.resolve(__dirname, 'Server.ts'),
  37. output: {
  38. path: path.resolve(__dirname, '../lib'),
  39. filename: 'Backend.js',
  40. libraryTarget: 'commonjs',
  41. },
  42. module: {
  43. rules: [
  44. { test: /\.ts?$/, loader: "ts-loader" }
  45. ]
  46. },
  47. resolve: {
  48. extensions: [".ts", ".tsx", ".js"]
  49. },
  50. optimization: {
  51. minimize: true,
  52. minimizer: [
  53. new TerserPlugin({
  54. parallel: true,
  55. exclude: [
  56. /\.\/(.*)\/.ts/,
  57. /\.\/(.*).ts/,
  58. ],
  59. }),
  60. ],
  61. },
  62. }
  63. module.exports = [frontendConf, backendConf]