当前位置:   article > 正文

Vue3项目打包时开启 Gzip 压缩和移动端调试时开启 vConsole 调试_vue3 vconsole

vue3 vconsole

基于Vue3的项目在打包时开启 Gzip 压缩和移动端调试时开启 vConsole 调试。

1、首先导入相关依赖

  1. # 压缩插件
  2. npm install compression-webpack-plugin --save-dev
  3. # 移动端调试插件
  4. npm install vconsole-webpack-plugin --save-dev
  5. # 打包分析工具
  6. npm install webpack-bundle-analyzer --save-dev

2、修改 vue.config.js 文件

修改前

  1. const { defineConfig } = require('@vue/cli-service')
  2. module.exports = defineConfig({
  3. transpileDependencies: true,
  4. outputDir: 'dist',
  5. publicPath: '/', // Nginx静态资源的地址,如部署到 Nginx 的项目所在的目录为 nginx-1.17.8/xxx ,则这个 publicPath 的值就是 xxx
  6. devServer: {
  7. // host: '0.0.0.0',
  8. // port: '8888',
  9. https: false,
  10. proxy: {
  11. // 项目 A 的服务端接口地址
  12. '/aaa/api': {
  13. target: 'http://127.0.0.1:9091/',
  14. changeOrigin: true,
  15. secure: false,
  16. ws: true
  17. },
  18. // 项目 B 的服务端接口地址
  19. '/bbb/api': {
  20. target: 'http://127.0.0.1:9092/',
  21. changeOrigin: true,
  22. secure: false,
  23. ws: true
  24. },
  25. // 项目 C 的服务端接口地址
  26. '/ccc/api': {
  27. target: 'http://127.0.0.1:9093/',
  28. changeOrigin: true,
  29. secure: false,
  30. ws: true
  31. },
  32. // 默认服务端接口地址
  33. '/': {
  34. target: 'http://127.0.0.1:9090/',
  35. changeOrigin: true,
  36. secure: false,
  37. ws: true
  38. }
  39. }
  40. }
  41. })

修改后

  1. const { defineConfig } = require('@vue/cli-service')
  2. const CompressionPlugin = require('compression-webpack-plugin')
  3. const vConsolePlugin = require('vconsole-webpack-plugin')
  4. const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
  5. module.exports = defineConfig({
  6. transpileDependencies: true,
  7. outputDir: 'dist',
  8. publicPath: '/', // Nginx静态资源的地址,如部署到 Nginx 的项目所在的目录为 nginx-1.17.8/xxx ,则这个 publicPath 的值就是 xxx
  9. lintOnSave: true,
  10. productionSourceMap: false,
  11. configureWebpack: (config) => {
  12. /**
  13. * 生产环境的压缩插件
  14. */
  15. const prodPlugins = [
  16. new CompressionPlugin({
  17. filename: '[path][base].gz', // 压缩后的文件名(保持原文件名,后缀加上.gz)
  18. algorithm: 'gzip', // 开启 Gzip 压缩
  19. test: new RegExp('\\.(' + ['js', 'css'].join('|') + ')$'),
  20. threshold: 10240,// 对超过10k的数据压缩
  21. minRatio: 0.8, // 只有压缩率小于这个值的资源才会被处理
  22. }),
  23. new BundleAnalyzerPlugin()
  24. ];
  25. /**
  26. * 移动端的调试插件
  27. */
  28. const devPlugins = [
  29. new vConsolePlugin({
  30. filter: [], // 需要过滤的入口文件
  31. enable: false // 发布代码前记得改回 false
  32. })
  33. ];
  34. /**
  35. * process.env.NODE_ENV => ['development', 'production']
  36. */
  37. if (process.env.NODE_ENV === 'production') {
  38. config.plugins = [...config.plugins, ...prodPlugins]
  39. } else {
  40. config.plugins = [...config.plugins, ...devPlugins]
  41. }
  42. },
  43. devServer: {
  44. // host: '0.0.0.0',
  45. // port: 8080,
  46. hot: true, // 启用热更新
  47. https: false, // 是否开启 HTTPS 模式访问
  48. open: false, // 当项目启动后是否立即在浏览器打开
  49. proxy: {
  50. // 项目 A 的服务端接口地址
  51. '/aaa/api': {
  52. target: 'http://127.0.0.1:9091/', // Apache Tomcat 服务器
  53. changeOrigin: true,
  54. secure: false,
  55. ws: true
  56. },
  57. // // 项目 B 的服务端接口地址
  58. // '/bbb/api': {
  59. // target: 'http://127.0.0.1:9092/',
  60. // changeOrigin: true,
  61. // secure: false,
  62. // ws: true
  63. // },
  64. // // 项目 C 的服务端接口地址
  65. // '/ccc/api': {
  66. // target: 'http://127.0.0.1:9093/',
  67. // changeOrigin: true,
  68. // secure: false,
  69. // ws: true
  70. // },
  71. // // 默认服务端接口地址
  72. // '/': {
  73. // target: 'http://127.0.0.1:9090/',
  74. // changeOrigin: true,
  75. // secure: false,
  76. // ws: true
  77. // }
  78. }
  79. }
  80. })

3、效果如下~

(1)未使用 Gzip 压缩时进行项目打包

(2)已使用 Gzip 压缩时进行项目打包

(3)引入打包分析插件,打包项目时会自动打开该页面

 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号