vue h5项目 打包&&加载优化

这篇具有很好参考价值的文章主要介绍了vue h5项目 打包&&加载优化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

打包美化:

1)npx browserslist@latest --update-db 更新去除警告

2)打包进度条

npm add progress-bar-webpack-plugin -D

npm add webpackbar -D

vue h5项目 打包&&加载优化,vue.js,前端,javascript,性能优化

npm install --save-dev webpack-bundle-analyzer

vue h5项目 打包&&加载优化,vue.js,前端,javascript,性能优化

优化:

1.各个插件和loader所花费的时间

npm i speed-measure-webpack-plugin -D 安装打包优化分析插件

得到所有打包文件耗时:

vue h5项目 打包&&加载优化,vue.js,前端,javascript,性能优化

2.添加 cache-loader

基本主要是在cache-loader上比较耗时,提升方法添加cache-laoder

$ npm install cache-loader -D

初次打包时间: 5分钟

vue h5项目 打包&&加载优化,vue.js,前端,javascript,性能优化

优化打包:

vue h5项目 打包&&加载优化,vue.js,前端,javascript,性能优化

开启多线程打包:

npm install --save-dev thread-loader

 config.module
        .rule('js')
        .use('thread-loader')
        .loader('thread-loader')
        .tap(options => {
            // 设置 thread-loader 的选项
            options = {
                workers: 3
            }
            return options
        })

vue h5项目 打包&&加载优化,vue.js,前端,javascript,性能优化

vue.config.js配置Gzip压缩

npm install --save-dev compression-webpack-plugin

config.plugins.push(
        //统一配置打包插件
        new CompressionWebpackPlugin({
          filename: '[path].gz[query]',
          algorithm: 'gzip',
          test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'), //匹配文件名
          threshold: 10240, //对10K以上的数据进行压缩
          minRatio: 0.8,
          deleteOriginalAssets: false //是否删除源文件
        })
      )

vue h5项目 打包&&加载优化,vue.js,前端,javascript,性能优化

删除无用css

npm i purgecss-webpack-plugin -D  使用^3.0.0版本
npm i mini-css-extract-plugin -D       使用^0.9.0版本
npm i glob-all -D

打包瘦身:11M=>72kb

vue h5项目 打包&&加载优化,vue.js,前端,javascript,性能优化

图片压缩

vue-cli3压缩图片配置

npm install --save-dev image-webpack-loader

HardSourceWebpackPlugin是webpack的插件

为模块提供中间缓存步骤。为了查看结果,您需要使用此插件运行webpack两次:第一次构建将花费正常的时间。第二次构建将显着加快(大概提升90%的构建速度)。本地缓存比较严重待验证

第一次构建

vue h5项目 打包&&加载优化,vue.js,前端,javascript,性能优化

第二次打包38s

vue h5项目 打包&&加载优化,vue.js,前端,javascript,性能优化

CDN引入

将引用的外部js、css文件剥离开来,不编译到vendor.js中,而是用资源的形式引用,这样浏览器可以使用多个线程异步将vendor.js、外部的js等加载下来,达到加速首页展示效果。

(1) 在vue.config.js 加入配置

const externals = {
 // 属性名称 vue, 表示遇到 import xxx from 'vue' 这类引入 'vue'的,不去 node_modules 中找,而是去找全局变量 Vue(其他的为VueRouter、Vuex、axios、ELEMENT,注意全局变量是一个确定的值,不能修改为其他值,修改为其他大小写或者其他值会报错)
    vue: 'Vue',
    'vue-router': 'VueRouter',
    vuex: 'Vuex',
    axios: 'axios'
}

const cdn = {
  css: [],
  js: [
  		//这里CDN地址推荐使用公司私有地址,外部CDN具有很大的不确定性
  		'https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.min.js',
   		'https://cdn.bootcdn.net/ajax/libs/vue-router/3.0.2/vue-router.min.js',
      'https://cdn.bootcdn.net/ajax/libs/vuex/3.1.0/vuex.min.js',
      'https://cdn.bootcdn.net/ajax/libs/axios/0.18.1/axios.min.js'
  ]
}
module.exports = {
	// ...
    chainWebpack: config => {
        if (isProduction) { // 生产环境才注入cdn
            config.plugin('html').tap(args => {
              args[0].cdn = cdn
              return args
            })
            //视为一个外部库,而不将它打包进来
            config.externals(externals)
        }
    }
    // ...
}

(2) 在public/index.html文件配置

使用webpack中自带的插件 html插件进行配置,在index.html中增加判断,是否使用 CDN,htmlWebpackPlugin.options使用的是vue.config中的config.plugin(‘html’)的插件属性。

<% for (var i in
    htmlWebpackPlugin.options.cdn&&htmlWebpackPlugin.options.cdn.css) { %>
    <link href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" rel="preload" as="style" />
    <link href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" rel="stylesheet" />
  <% } %>
  <!-- 使用CDN加速的JS文件,配置在vue.config.js下 -->
  <% for (var i in
    htmlWebpackPlugin.options.cdn&&htmlWebpackPlugin.options.cdn.js) { %>
    <script src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script>
  <% } %>

3.去除console.log debuger 警告

如果你使用的是 webpack v5 或以上版本,你不需要安装这个插件。webpack v5 自带最新的 terser-webpack-plugin。如果使用 webpack v4,则必须安装 terser-webpack-plugin v4 的版本。如果报错javascript为undefined 因为webpack版本比较低,所以更改terser版本(“terser-webpack-plugin”: “^4.2.3”)

$ npm install terser-webpack-plugin --save-dev

然后将插件添加到你的 webpack 配置文件中。例如:

const TerserPlugin = require("terser-webpack-plugin");

module.exports = {
  optimization: {
    minimize: true,
    minimizer: [new TerserPlugin()],
  },
};

安装前打包前:

vue h5项目 打包&&加载优化,vue.js,前端,javascript,性能优化

安装后打包:

vue h5项目 打包&&加载优化,vue.js,前端,javascript,性能优化

添加优化项:

// vue.config.js
chainWebpack (config) {
  config.optimization.minimizer('terser').tap((args) => {
    args[0].parallel = 4
    args[0].terserOptions.compress.warnings = true
    args[0].terserOptions.compress.drop_debugger = true
    args[0].terserOptions.compress.drop_console = true
    return args
  })
}

加载优化:

从以下几个方面入手:文章来源地址https://www.toymoban.com/news/detail-682926.html

  • 1加载策略优化
  • 2增加 骨架屏
  • 3资源请求优化(静态资源、图片以及 webp、图片懒加载、组件按需加载)
  • 4CDN & 缓存

到了这里,关于vue h5项目 打包&&加载优化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 已解决:安卓自带的webview加载前端h5项目白屏时长严重,vue首页加载白屏时间过长,那我让app进入的时候就提前加载网页

    自己写的vue项目,自己写的安卓壳子,本来自己觉得慢,忍忍就过去了,但是人家觉得慢,你不得改么?结果是前端自己开发,安卓也自己开发,想甩个锅都没法甩,总不能甩给后端吧?哈哈哈 描述一下我的情况,我写了一个vue项目,需要嵌在安卓里运行,没想到安卓webvi

    2024年02月03日
    浏览(49)
  • 【vite+vue3.2 项目性能优化实战】打包体积分析插件rollup-plugin-visualizer视图分析

    rollup-plugin-visualizer 是一个用于Rollup构建工具的插件,它可以生成可视化的构建报告,帮助开发者更好地了解构建过程中的文件大小、依赖关系等信息。 使用 rollup-plugin-visualizer 插件,可以在构建完成后生成一个交互式的HTML报告,其中包含了构建过程中的各种统计信息,如文

    2024年02月07日
    浏览(38)
  • Webpack项目学习:Vue-cli(脚手架)-优化配置 -ui库element-plus+减小打包体积 -按需加载+自定义主题+优化

    安装 全部引入,在入口文件main.js  启动:npm start  按需引入 需要插件快速开始 | Element Plus (gitee.io)     更改默认配置 主题 | Element Plus (gitee.io)    如果有模块没有安装 ,安装一下即可 优化 关闭性能分析 文件单独打包 做缓存-

    2024年02月08日
    浏览(46)
  • 前端面试:【性能优化】页面加载性能、渲染性能、资源优化

    嗨,亲爱的前端开发者!在今天的Web世界中,用户期望页面加载速度快、交互流畅。因此,前端性能优化成为了至关重要的任务。本文将探讨三个关键方面的性能优化:页面加载性能、渲染性能以及资源优化,以帮助你构建更快速、响应更快的Web应用程序。 1. 页面加载性能:

    2024年02月11日
    浏览(39)
  • Web 前端性能优化之三:加载优化

    2、加载优化 1、延迟加载 本着节约不浪费的原则,在首次打开网站时,应尽量只加载首屏内容所包含的资源,而首屏之外涉及的图片或视频,可以等到用户滚动视窗浏览时再去加载。以上就是延迟加载优化策略的产生逻辑,通过延迟加载“非关键”的图片及视频资源,使得页

    2024年04月26日
    浏览(33)
  • 前端面试:【性能优化】前端缓存、CDN、懒加载和预加载

    亲爱的前端开发者,Web性能对用户体验至关重要。如果你想让你的网站更快、更具吸引力,就需要关注前端性能优化。在这篇文章中,我们将深入探讨四个关键的性能优化策略:前端缓存、CDN(内容分发网络)、懒加载和预加载,以助你构建高性能的Web应用。 1. 前端缓存:优

    2024年02月11日
    浏览(31)
  • react项目做的h5页面加载缓慢优化(3s优化到0.6s)

    打包到生产环境时去掉SOURCEMAP 禁用生成 Source Map 是一种权衡,可以根据项目的实际需求和优化目标来决定是否禁用。如果您对调试需求不是特别强烈,可以考虑在生产构建中禁用 Source Map 以获取更好的性能。但如果需要保留调试能力,可以在生产构建中保留生成 Source Map “

    2024年02月13日
    浏览(32)
  • 用webpack做一些前端打包时的性能优化

    一.webpack 的五个核心概念 1.Entry:入口指示,webpack以哪个文件为入口起点开始打包,分析构建内部依赖图 2.output:输出指示,webpack打包后的资源bundles输出到哪里去,以及如何命名 3.loader :loader让webpack能够去处翻译理那些非js文件(img css…) 4.Plugins :Plugins插件可以用于执行范围

    2024年02月12日
    浏览(36)
  • 【 Vue3 性能优化】页面加载性能 与 更新性能

    Vue 在大多数常见场景下性能都是很优秀的,通常不需要手动优化。然而,总会有一些具有挑战性的场景需要进行针对性的微调。 数字化管理平台 Vue3+Vite+VueRouter+Pinia+Axios+ElementPlus教程 权限系统-商城 个人博客地址 Web 性能优化主要有两个方面: 页面加载性能 首次访问时,应

    2024年02月14日
    浏览(34)
  • 前端性能优化的利器 ——— 浅谈JavaScript中的防抖和节流

    防抖和节流函数是工作中两种常用的前端性能优化函数,今天我就来总结一下什么是防抖和节流,并详细说明一下如何在工作中应用防抖和节流函数 在 JavaScript 中,防抖(debounce)和节流(throttle)是用来限制函数执行频率的两种常见技术。 防抖(debounce) 是指在某个时间段

    2024年02月14日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包