前端项目优化01

前端项目优化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的文件

 

 

posted @ 2019-10-14 10:20  前端开发-周先生  阅读(357)  评论(0编辑  收藏  举报