zoukankan      html  css  js  c++  java
  • vue项目打包数百M解决

    vue项目打包数百M解决

    项目打包之后500多M,每次打包/部署服务器都崩,分析之后,发现是引用不规范导致的,一些经常用到的组件,当时的开发人员没有全局引入,而是各个vue/js中引入的...

    在这里插入图片描述

    解决方法

    • 关闭map

    这个项目之前就关了...依然这么大(关闭map项目可以减少3/5,也就是说,没关map会超过1G...)

    • 找到重复引入的组件,在main.js中引入

    由于只是全局引入一下,其他地方的代码没变,也就不会有兼容问题
    这个方法让我的项目从562M减少到了正常的61M(其中有20M是图片,js文件夹33.9M);之后可以引入CDN继续优化项目

    步骤

    关闭map

    • configindex.jsmodule.exports.buildproductionSourceMap设置为false,打包的时候就不会生成map文件,打包速度也会提升很多;

    处理重复引入组件

    使用 webpack-bundle-analyzer 进行分析(配置方法就不写了)

    打包之后,要过一段时间才会出分析结果

    在这里插入图片描述

    • 可以看到,项目中cesium 一直重复打包;
    • main.js中引入
    import * as Cesium from 'cesium/Cesium'
    #不知道怎么引的话,全局搜 cesium ,看看其他地方是怎么引的
    

    • 此时再次打包,项目就只有160M了,再次弹出的分析页面中,有几个组件不大,但是几乎所有的js中都出现了,也一并引入
    import * as turf from '@turf/turf'
    import L from "leaflet";
    import JsZip from 'jszip'
    
    • 再次打包,项目只有96M,此时最大的是src/js中的文件夹,里面自定义的js文件,在项目中一直重复引入,
      在这里插入图片描述
    # 引入ser/js文件夹,webpage直接写 ./src/js 失败了,就换了@,@代表src文件夹
    const modulesFiles = require.context("@/js", true, /.js$/);
    
    • 此时项目就只有61.6M了
      在这里插入图片描述
      在这里插入图片描述

    在这里插入图片描述

    完成!!!

    项目还可以继续优化,比如vue,element-ui等组件可以改为CDN资源:


  • 相关阅读:
    MyISAM 和 InnoDB 索引的区别
    iOS crash日志
    。。。
    redis的缓存测试
    job测试
    笔记
    Android获取启动页面Activity方法
    UI自动化框架-一个小demo
    mitmproxy-java 的尝试
    monkey
  • 原文地址:https://www.cnblogs.com/ziyue7575/p/13728234.html
Copyright © 2011-2022 走看看