vue.config.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. const CompressionWebpackPlugin = require("compression-webpack-plugin");
  2. const path = require('path')
  3. const productionGzipExtensions = /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i;
  4. module.exports = {
  5. publicPath: './', // 相对于 HTML 页面(目录相同)
  6. configureWebpack: config => {
  7. if(process.env.NODE_ENV === 'production') {
  8. config.plugins.push(
  9. new CompressionWebpackPlugin({
  10. /* [file]被替换为原始资产文件名。
  11. [path]替换为原始资产的路径。
  12. [dir]替换为原始资产的目录。
  13. [name]被替换为原始资产的文件名。
  14. [ext]替换为原始资产的扩展名。
  15. [query]被查询替换。*/
  16. filename: '[path].gz[query]',
  17. //压缩算法
  18. algorithm: 'gzip',
  19. //匹配文件
  20. test: productionGzipExtensions,
  21. //压缩超过此大小的文件,以字节为单位
  22. threshold: 10240,
  23. minRatio: 0.8,
  24. //删除原始文件只保留压缩后的文件
  25. //deleteOriginalAssets: false
  26. })
  27. )
  28. }
  29. config.resolve.alias = {
  30. '@': path.resolve(__dirname, 'src'),
  31. 'components': '@/components',
  32. 'views': '@/views'
  33. }
  34. },
  35. css: {
  36. loaderOptions: {
  37. less: {
  38. javascriptEnabled: true,
  39. }
  40. }
  41. },
  42. };