vue.config.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. const path = require("path");
  2. const TerserPlugin = require("terser-webpack-plugin");
  3. const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");
  4. const WorkboxPlugin = require("workbox-webpack-plugin");
  5. const HappyPack = require("happypack");
  6. const webpack = require("webpack");
  7. function resolve(dir) {
  8. return path.join(__dirname, dir);
  9. }
  10. module.exports = {
  11. chainWebpack(config) {
  12. config.module.rule("svg").exclude.add(resolve("src/icons")).end();
  13. config.module
  14. .rule("icons")
  15. .test(/\.svg$/)
  16. .include.add(resolve("src/icons"))
  17. .end()
  18. .use("svg-sprite-loader")
  19. .loader("svg-sprite-loader")
  20. .options({
  21. symbolId: "icon-[name]",
  22. })
  23. .end();
  24. config.plugin("happypack").use(HappyPack, [
  25. {
  26. loaders: ["babel-loader"],
  27. },
  28. ]);
  29. // config.plugin('dll').use(webpack.DllPlugin, [
  30. // {
  31. // name: '[name]_library',
  32. // path: path.join(__dirname, 'dll', '[name]-manifest.json'),
  33. // },
  34. // ]);
  35. config.plugin("workbox").use(WorkboxPlugin.GenerateSW, [
  36. {
  37. clientsClaim: true,
  38. skipWaiting: true,
  39. },
  40. ]);
  41. },
  42. css: {
  43. loaderOptions: {
  44. postcss: {
  45. postcssOptions: {
  46. plugins: [require("tailwindcss"), require("autoprefixer")],
  47. },
  48. },
  49. },
  50. },
  51. devServer: {
  52. proxy: {
  53. "/api": {
  54. // target: "http://192.168.5.4:16200", // 石月
  55. <<<<<<< HEAD
  56. target: "http://192.168.50.235:16200",//内网
  57. =======
  58. target: "http://192.168.50.235:16200",
  59. >>>>>>> 3c71ffd323781083528875676ea7f31295780bfd
  60. // target: "http://106.120.102.238:16600",//外网
  61. changeOrigin: true,
  62. pathRewrite: {
  63. "^/api": "", // 需要rewrite重写的,
  64. },
  65. },
  66. },
  67. },
  68. configureWebpack: {
  69. resolve: {
  70. alias: {
  71. "@": resolve("src"),
  72. },
  73. },
  74. optimization: {
  75. usedExports: true,
  76. splitChunks: {
  77. chunks: "all",
  78. },
  79. minimize: true,
  80. minimizer: [new TerserPlugin(), new CssMinimizerPlugin()],
  81. },
  82. },
  83. };