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的文件
  • 相关阅读:
    Git初探
    ERROR:column "rolcatupdate" does not exist
    Android Studio SVN使用和VisualSVN-Server配置(图解)
    你了解实时计算吗?
    AndroidAnnotations使用说明书—AndroidAnnotations是怎样工作的?
    ios_webView
     paip.android环境搭建与开发事例
    【转】JNI学习积累之一 ---- 常用函数大全
    【转】NI语法 JNI参考 JNI函数大全
    【转】Android 学习笔记——利用JNI技术在Android中调用、调试C++代码
  • 原文地址:https://www.cnblogs.com/zhoudawei/p/11670010.html
Copyright © 2011-2022 走看看