vue打包体积优化之旅

webpack 与 vue

在使用vue开发时,遇到打包后单个文件太大,因而需要分包,不然加载时间太久。虽然尽可能减少请求次数,但是单个包太大也不是好事

思路

  • 组件按需加载
  • vue-router 的懒加载
  • 第三方包分离
  • 代码分割时,

组件按需加载

  • 现在ui库大多都是以组件的形式进行处理,因而不用将整个库都导入,只需导入想要的即可
  • 根据对应库的文档进行操作即可,现在每个库都有对应的使用流程,及相关配置,并不是很难
  • 只是在导入css样式时依旧需要全部导入(目前只能如此)

vue-router 懒加载

  • 利用 promise 异步功能,进行相关配置后,页面点击时,会根据相应的进行页面加载,而不是一次性加载完,毕竟有些页面也许根本就不会进入
  • 语法: componet: () => import(‘**/*‘) 如果是大量的,最后提取进行封装成函数,这样调用就好了

第三方包分离

  • 经常会引入第三方库,但是这些感觉没有必要也混入到一个文件中
  • CommonsChunkPlugin通过将公共模块拆出来,最终合成的文件能够在最开始的时候加载一次,便存到缓存中供后续使用
entry: {
  // 分离第三方包
  vendor: ["jquery", "other-lib"],
  app: "./entry"
},

代码分割

  • 使用 promise 作为分割点
  • 需要使用相应的插件LimitChunkCountPlugin ==== 会注意到有一些很小的 chunk - 这产生了大量 HTTP 请求开销。幸运的是,此插件可以通过合并的方式,后处理你的 chunk,以减少请求数。

开启Gzip进行压缩

  • 这个需要服务器配合才可以

首屏加载慢

vue-router
// prev
const component1 = () => import(‘@/components/**‘)

//now 利用webpack   require.ensure
comst component2 = r => require.ensure([], () => r(require(‘@/components/+‘**‘+.vue‘)))

test

经过测试 使用路由懒加载的 import 反而比 require.ensuse更好

原始,没有启用的结果

使用 import方式

  • 源码

  • 打包的结果

    使用 require.ensuse方式

  • 源码

  • 打包后的结果

总结

  • 以后就直接使用 import 进行懒加载了
  • 若是多页面,(现在开发的都是SPA),可以在入口进行处理,

路漫漫其修远兮,吾将继续前行,苦修

原文地址:https://www.cnblogs.com/sinosaurus/p/9277498.html

时间: 2024-10-04 16:02:39

vue打包体积优化之旅的相关文章

webpack打包体积优化

webpack打包的体积越小,对于部署应用的网站来说,性能越好,加载速度越快. 1. 分析打包文件 1. 生成统计信息文件 首先需要通过webpack命令生成统计信息的文件.在package.json的脚本中添加命令 "scripts": { "stats": "webpack --config webpack.prod.js --profile --json > stats.json", //... } 上面的命令会在根目录下生成一个st

最全 webpak4.0 打包性能优化清单

最全 webpak4.0 打包性能优化清单 webpack4.0如何进行打包优化? 无非是从两个角度进行优化,其一:优化打包速度,其二:优化打包体积,送你一份打包性能优化清单 1.使用loader的时候尽量指定exclude和inlucde来提高文件查找效率,避免不必要的查找,设置noParse参数 module: { noParse: /jquery/, // 不去解析jquery中的依赖 rules:[ { test: /\.js?$/, use: [ { loader: 'babel-lo

Webpack打包效率优化篇

Webpack基础配置: 语法解析:babel-loader 样式解析:style-loader css解析:css-loader less解析:less-loader 文件解析:url-loader(file-loalder) 性能分析:webpack-bundle-analyzer 代码: var path = require('path'); var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyz

Vue Cli3配置文件优化处理

1.设置productionSourceMap为false 如果不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建. 设置为false打包时候不会出现.map文件 module.exports = { productionSourceMap: false } 2.代码压缩 安装uglifyjs-webpack-plugin插件,可以去除项目中console.log和debugger npm install uglifyjs-webpack-plugin --s

大牛耗时一年:深入探索 Android 包体积优化,共三万字建议收藏上

由于文章特别长,建议先收藏再阅读. 在 Android 性能优化的知识体系当中,包体积优化一直被排在优先级比较低的位置,从而导致很多开发同学对自身应用的大小并不重视.在项目发展的历程中,一般可划分为如下三个阶段:初创期 => 成长期 => 成熟期通常来说,当应用处于成长期的中后阶段时,才会考虑去做系统的包体积优化,因此,只有在这个阶段及之后,包体积优化带来的收益才是可观的. 那么,包体积优化能够给我们带来哪些 收益 呢?如何全面对应用的包体积进行 系统分析 及 针对性优化呢?在这篇文章中,我们

12款实用免费批量图片体积优化压缩工具!网页设计必备 (在线网页版+桌面工具下载)(转)

转载 楼主我用的第一个图片优化,效果非常好,推荐! 我们都知道,漂亮的图片可以让一个网页看起来更加高端大气上档次.然而,一般高分辨率的高清图片/照片的体积都比较巨大,如果网页里包含很多图片,那网页加载的速度就会变得很慢. 不仅如此,如果网页的访问量较大,其中图片消耗的流量带宽也会成倍增加!因此,如能在不损失图片质量或在肉眼不易辨别的情况下优化压缩图片,尽可能减小图片体积,那么一来可以加快网页显示速度,二来减轻服务器负担,三来还能大大减少带宽流量的成本支出,实乃好处多多.因此今天整理了这些实用的图

vue打包后显示空白正确处理方法

在项目中很多时候需要用到vue打包成html不需要放在服务器上就能浏览.根据官网打包出来的html直接打开是显示空白. 正确的方法步骤是 1.找到配置文件 修改 这样打包处理可以打开但是页面样式会找不到 2.修改 找到对应的位置加上publicPath: '../../' 然后就成功了! 转载:http://www.wei86.cn/article/1/cid/3.html

Vue打包后出现一些map文件

Vue打包后出现一些map文件的解决办法: 问题: 可能很多人在做vue项目打包,打包之后js中,会自动生成一些map文件,那我们怎么把它去掉不要呢? 1,运行  cnpm run build  开始打包 2,会在项目目录下自动创建dist目录,打包好的文件都在其中 解决办法:     去src/config/index.js中改一个参数: productionSourceMap:false 把这个改为false.不然在最终打包的文件中会出现一些map文件,map文件的作用在于:项目打包后,代码

vue线上项目,优化前后对比

优化前: dev初次时间:52s dev时间:5s~6s build时间:374s(6.2分钟) build后zip包大小: vue.vue-router 优化后: dev初次时间:49s.48s.50s.54s.56s.69s.50s....... dev时间:5s.6.7s.4.7s.5.3s.4.8s.4.7s.4.9s.5.5s.10.8s.10.4s.9.8s.9.6s.7.9s.5.9s.6.5s...... build时间:265s.266s.263s.271s.267s.....