vue.config.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. const Components = require('unplugin-vue-components/webpack');
  2. const AutoImport = require('unplugin-auto-import/webpack');
  3. const { ElementPlusResolver } = require('unplugin-vue-components/resolvers');
  4. const CompressionPlugin = require('compression-webpack-plugin');
  5. module.exports = {
  6. productionSourceMap: false,
  7. publicPath: './',
  8. chainWebpack: config => {
  9. if (process.env.NODE_ENV === 'production') {
  10. config.plugin('compressionPlugin').use(
  11. new CompressionPlugin({
  12. test: /\.js$|\.css|\.less/, // 匹配文件名
  13. threshold: 102400, // 对超过10k的数据压缩
  14. deleteOriginalAssets: false, // 不删除源文件
  15. })
  16. );
  17. // 移除 prefetch 插件
  18. config.plugins.delete('prefetch');
  19. config.module.rules = [
  20. {
  21. test: /\.s[ac]ss$/i,
  22. use: [
  23. // 将 Sass 编译成 CSS
  24. {
  25. loader: 'sass-loader',
  26. options: {
  27. sassOptions: {
  28. strictMath: true,
  29. noIeCompat: true,
  30. },
  31. },
  32. },
  33. ],
  34. },
  35. ];
  36. }
  37. },
  38. configureWebpack: {
  39. plugins: [
  40. AutoImport({
  41. resolvers: [ElementPlusResolver()],
  42. }),
  43. Components({
  44. resolvers: [ElementPlusResolver()],
  45. }),
  46. ],
  47. },
  48. };