vue.config.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /*
  2. * @Author: PoJun
  3. * @Date: 2022-02-25 09:15:23
  4. * @LastEditors: PoJun
  5. * @LastEditTime: 2023-06-08 18:30:14
  6. * @Message: Do not edit
  7. */
  8. const { resolve, join } = require("path");
  9. const CompressionPlugin = require("compression-webpack-plugin");
  10. const CopyWebpackPlugin = require("copy-webpack-plugin"); //引入插件
  11. module.exports = {
  12. publicPath: "./",
  13. productionSourceMap: false,
  14. devServer: {
  15. open: true,
  16. proxy: {
  17. "/api": {
  18. target: process.env.VUE_APP_BASE_API,
  19. ws: true,
  20. changeOrigin: true,
  21. pathRewrite: { "^/api": "" },
  22. },
  23. },
  24. },
  25. css: {
  26. extract: { ignoreOrder: true }, // 开启后热更新失效
  27. // 是否开启 CSS source maps
  28. sourceMap: false,
  29. requireModuleExtension: true,
  30. loaderOptions: {
  31. less: {
  32. lessOptions: {
  33. javascriptEnabled: true,
  34. modifyVars: {
  35. hack: `true;
  36. @import "${join(__dirname, "./src/styles/theme.less")}";
  37. `,
  38. },
  39. },
  40. },
  41. },
  42. },
  43. configureWebpack: () => {
  44. if (process.env.NODE_ENV === "production") {
  45. return {
  46. plugins: [
  47. new CompressionPlugin({
  48. test: /\.js$|\.css/, // 匹配文件名字
  49. threshold: 10240, // 对超过10k的数据进行压缩
  50. deleteOriginalAssets: false, // 是否删除源文件
  51. }),
  52. new CopyWebpackPlugin({
  53. patterns: [
  54. {
  55. from: resolve(__dirname, "./src/static"),
  56. to: "static",
  57. globOptions: {
  58. dot: true,
  59. gitignore: true,
  60. },
  61. },
  62. ],
  63. }),
  64. ],
  65. };
  66. }
  67. },
  68. };