zoukankan      html  css  js  c++  java
  • 前端项目优化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的文件
  • 相关阅读:
    Laravel 服务容器、服务提供器、契约实例讲解
    通过event记录sql
    laravel log改为时间格式
    array_column函数
    linux 安装ssh以及ssh用法与免密登录
    scp复制文件到远程服务器上
    nginx配置ssl证书后无法访问https
    Mac 在terminal 上用命令打开sublime
    Mac上通过iterm 上传文件到服务器
    基于visual Studio2013解决算法导论之044最短路径
  • 原文地址:https://www.cnblogs.com/zhoudawei/p/11670010.html
Copyright © 2011-2022 走看看