前端项目优化01

核能气质少年 提交于 2019-12-01 07:46:23
前端项目优化01
1. webpack-bundle-analyzer 文件打包模块可视化插件
  该插件主要用于分析项目打包后的文件体积大小,
 
2.compression-webpack-plugin js文件gzip压缩插件
  该插件主要是用gzip算法来进一步压缩js文件(压缩空间≈70&)
 
 
现有项目配置:
 
package.json
// 新增两个依赖
"devDependencies": {
    "compression-webpack-plugin": "1.1.12", // 压缩
    "webpack-bundle-analyzer": "^3.3.2", // 可视化
}
 
// 新增npm执行指令
"scripts": {
"build:gzip": "cross-env NODE_ENV=production GZIP=true webpack --progress --hide-modules", // 生产打包且初始化压缩环境变量
"analyzer": "cross-env NODE_ENV=production ANALYZER=true webpack --progress --hide-modules", // 生产打包且初始化可视化环境变量
}
 
 
webpack.config.js
 
模块导入
var BundleAnalyzerPlugin  = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
var CompressionPlugin = require('compression-webpack-plugin')
 
模块配置
  if (process.env.ANALYZER) { // 可视化环境存在ANALYZER存在
    module.exports.plugins = module.exports.plugins.concat(new BundleAnalyzerPlugin())
  }
  if (process.env.GZIP) { // 文件压缩环境存在ANALYZER存在
    module.exports.plugins = module.exports.plugins.concat(new CompressionPlugin({
      algorithm: 'gzip',
      test: /\.js/,
      deleteOriginalAssets: true
    }))
  }
 
 
注释:
webpack3对应的compression-webpack-plugin版本只能是1.1.2
webpack4对应的compression-webpack-plugin版本^2.0.0
 
更新早上说的配置的一个问题,变更这个配置的原因主要是,怕nginx服务器那边没开启gzip功能,如果只打包.gz的文件,会导致访问异常,所以去掉这个属性会打包两份js代码,一份 .js ,一份是.js.gz,nginx服务器会根据相关配置来读取.js还是.js.gz的文件

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!