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

webpack.config.js 1.9 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. const path = require('path');
  2. const TerserPlugin = require('terser-webpack-plugin');
  3. const { SourceMapDevToolPlugin } = require('webpack');
  4. const VueLoaderPlugin = require('vue-loader/lib/plugin');
  5. module.exports = {
  6. mode: 'production',
  7. entry: {
  8. index: ['./web_src/js/index'],
  9. swagger: ['./web_src/js/swagger'],
  10. },
  11. devtool: false,
  12. output: {
  13. path: path.resolve(__dirname, 'public/js'),
  14. filename: '[name].js',
  15. chunkFilename: '[name].js',
  16. },
  17. optimization: {
  18. minimize: true,
  19. minimizer: [new TerserPlugin({
  20. sourceMap: true,
  21. extractComments: false,
  22. terserOptions: {
  23. output: {
  24. comments: false,
  25. },
  26. },
  27. })],
  28. },
  29. module: {
  30. rules: [
  31. {
  32. test: /\.vue$/,
  33. exclude: /node_modules/,
  34. loader: 'vue-loader'
  35. },
  36. {
  37. test: /\.js$/,
  38. exclude: /node_modules/,
  39. use: {
  40. loader: 'babel-loader',
  41. options: {
  42. presets: [
  43. [
  44. '@babel/preset-env',
  45. {
  46. useBuiltIns: 'usage',
  47. corejs: 3,
  48. }
  49. ]
  50. ],
  51. plugins: [
  52. [
  53. '@babel/plugin-transform-runtime',
  54. {
  55. regenerator: true,
  56. }
  57. ],
  58. '@babel/plugin-proposal-object-rest-spread',
  59. ],
  60. }
  61. }
  62. },
  63. {
  64. test: /\.css$/i,
  65. use: ['style-loader', 'css-loader'],
  66. },
  67. ]
  68. },
  69. plugins: [
  70. new VueLoaderPlugin(),
  71. new SourceMapDevToolPlugin({
  72. filename: '[name].js.map',
  73. exclude: [
  74. 'swagger.js',
  75. ],
  76. }),
  77. ],
  78. performance: {
  79. assetFilter: (filename) => {
  80. return !filename.endsWith('.map') && filename !== 'swagger.js';
  81. }
  82. },
  83. };