返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue项目中打包优化的四种方法详解
  • 210
分享到

Vue项目中打包优化的四种方法详解

2024-04-02 19:04:59 210人浏览 薄情痞子
摘要

目录前言打包优化的目的:性能优化的主要方向:1.异步组件配置(路由懒加载)2.去掉打包后的 console3.使用CDN4.yarn build生成dist目录总结前言 默认情况下,

前言

默认情况下,通过import语法导入的第三方依赖包,最终会全部打包到一个js文件中,会导致单文件体积过大大,在网速底下时会阻塞网页加载,影响用户体验。

打包优化的目的:

1、项目启动速度,和性能

2、必要的清理数据

3、减少打包后的体积

第一点是核心,第二点呢其实主要是清理console

性能优化的主要方向:

路由懒加载

去除生产版console.log的打印输出

开发版使用依赖项,生产版使用在线CDN

项目打包及配置

1.异步组件配置(路由懒加载)

一上来加载所有的组件, 首屏加载就比较慢, 可以配置路由按需加载

当打包构建项目时,js包会变得非常大,影响页面加载,我们把不同路由的对应组件分割成不同的代码块,然后当路由被访问的时候加载对应的组件,这样能提升访问效率。

切分之后,并不是浏览器访问某个路由,才去下载对应的模块,仍然在首次访问程序时,下载所有模块,只不过每个模块分的很小,加载首页时需要的模块能够更快的下载下来,所以能够更快的显示

具体分三步:

  • 安装包  npm install --save-dev @babel/plugin-syntax-dynamic-impor
  • 在babel.config.js配置文件中加入插件
  • 将路由改为按需加载的形式
import Vue from 'vue'
import VueRouter from 'vue-router'
 
Vue.use(VueRouter)
 
const routes = [
  {
    path: '/Login',
    name: 'Login',
    // 路由懒加载
    component: () => import('../views/Login/index.vue')
  },
  {
    path: '/',
    component: () => import('../views/layout/index.vue'),
    children: [
      {
        path: '',
        component: () => import('../views/Home/index.vue')
      }
    ]
  }
]
 
//或者如下
 
const Login = () => import('@/views/Login')
const Reg = () => import('@/views/Reg')
const Layout = () => import('@/views/Layout')

2.去掉打包后的 console

打包上线后的console语句没有任何作用,所以我们应该移除它,除去手动移除,还可以使用插件的方式来移除代码里的console语句。

  安装依赖 : yarn add terser-webpack-plugin -D (npm i terser-WEBpack-plugin -D)

在vue.config.js修改配置文件

// 获取当前的打包环境(具体文章最后会说明)
const env = process.env.node_ENV
// 覆盖默认的webpack配置
module.exports = {
  publicPath: './',  //首次加载白屏(打包后文件路径问题)
  devServer: {
    port: 3000,
    open: true
  },
  chainWebpack: (config) => {
    config.optimization.minimizer('terser').tap((args) => {
      args[0].terserOptions.compress.drop_console = true
      return args
    })
  } 
}

3.使用CDN

使用CDN,减少包的体积。 将线上环境中用到的一些依赖,使用CDN网络节点的方式进行引用,而不是直接打包到包里。

项目开发阶段和生产阶段不一样,我们在开发阶段还是要使用import导入依赖的方式来进行开发,在生产阶段再配置CDN外链来获取项目依赖。

默认情况下,Vue项目的开发模式和发布模式,共同使用一个打包的入口文件(src/main.js)为了将项目的开发过程与发布过程分离,我们可以分别使用两个入口文件,一个用于开发环境打包(这个就是main.js),一个用于生产环境打包

在vue.config.js中

// 是否为生产环境
const isProduction = process.env.NODE_ENV !== 'development';
 
// 本地环境是否需要使用cdn
const devNeedCdn = false
 
// cdn链接
const cdn = {
    // cdn:模块名称和模块作用域命名(对应window里面挂载的变量名称)
    externals: {
        vue: 'Vue',
        vuex: 'Vuex',
        'vue-router': 'VueRouter',
        'marked': 'marked',
        'highlight.js': 'hljs',
        'nprogress': 'NProgress',
        'axiOS': 'axios'
    },
    // cdn的CSS链接
    css: [
        
    ],
    // cdn的js链接
    js: [
        'https://cdn.bootcss.com/vue/2.6.10/vue.min.js',
        'Https://cdn.bootcss.com/vuex/3.1.2/vuex.min.js',
        'https://cdn.bootcss.com/vue-router/3.1.3/vue-router.min.js',
        'https://cdn.bootcss.com/axios/0.19.2/axios.min.js'
    ]
}
 
module.exports = {
    chainWebpack: config => {
        // ============注入cdn start============
        config.plugin('html').tap(args => {
            // 生产环境或本地需要cdn时,才注入cdn
            if (isProduction || devNeedCdn) args[0].cdn = cdn
            return args
        })
        // ============注入cdn start============
    },
    configureWebpack: config => {
        // 用cdn方式引入,则构建时要忽略相关资源
        if (isProduction || devNeedCdn) config.externals = cdn.externals
    }
}
 <!-- 使用CDN的CSS文件 -->
 <% for (var i in htmlWebpackPlugin.options.cdn &&
  htmlWebpackPlugin.options.cdn.css) { %>
  <link
          href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" rel="external nofollow" 
          rel="stylesheet"
  />
  <% } %>
  <!-- 使用CDN的CSS文件 -->
 
 
  <!-- 使用CDN的JS文件 -->
 <% for (var i in htmlWebpackPlugin.options.cdn &&
  htmlWebpackPlugin.options.cdn.js) { %>
  <script src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script>
  <% } %>
  <!-- 使用CDN的JS文件 -->

4.yarn build生成dist目录

得到一个dist目录,这个目录包含了项目中所有的页面,样式,业务, 第三方包, 默认html文件中引入了资源文件是以项目根目录引入的, 双击目前是打开不了的 可以 借助vscode中的live-sever

打包的过程中, 会对代码进行压缩合并, 版本降级, 语法转换等...

module.exports = {
  publicPath: './',  //解决路径问题
  devServer: {
    port: 3000,   //改变端口号
    open: true    //运行后,自动打开浏览器运行
  }
}

总结

到此这篇关于Vue项目中打包优化的四种方法的文章就介绍到这了,更多相关Vue项目打包优化内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue项目中打包优化的四种方法详解

本文链接: https://lsjlt.com/news/164444.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Vue项目中打包优化的四种方法详解
    目录前言打包优化的目的:性能优化的主要方向:1.异步组件配置(路由懒加载)2.去掉打包后的 console3.使用CDN4.yarn build生成dist目录总结前言 默认情况下,...
    99+
    2024-04-02
  • Vue项目优化打包详解
    目录前言 一、路由懒加载1.为什么需要路由懒加载 2.如何实现路由懒加载 3.路由懒加载中的魔法注释 二、分析包大小1.需求 2.如何生成打包分析文件 三、webpack配置排除打包...
    99+
    2024-04-02
  • vue项目打包清除console.log的四种方法总结
    目录第1种:第2种:第3种:第4种:总结记录一下项目中碰到的小问题,打包清除console.log的方法,vue2,vue-cli5.0.0(得注意一下自己项目的vue-cli版本)...
    99+
    2023-05-15
    vue打包去除console vue console.log vue清除console.log
  • vue项目打包优化的方法实战记录
    目录1.按需加载第三方库2.移除console.log3. Close SourceMap4. Externals && CDN5.路由懒加载的方式总结1.按需加载第...
    99+
    2024-04-02
  • 详解Vue项目的打包方式
    目录一、相关配置情况一(使用的工具是 vue-cil)情况二(使用的工具是 webpack) 二、打包 总结一、相关配置 情况一(使用的工具是 vue-cil) ...
    99+
    2024-04-02
  • Vue项目如何优化打包
    这篇文章主要为大家展示了“Vue项目如何优化打包”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue项目如何优化打包”这篇文章吧。一、路由懒加载1.为什么需要路由懒加载当刚运行项目的时候,发现刚...
    99+
    2023-06-25
  • react前端项目打包优化的方法
    今天小编给大家分享一下react前端项目打包优化的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。分析通过控制台判断加载资...
    99+
    2023-06-05
  • vue项目打包优化方式(让打包的js文件变小)
    目录我使用的命令是 vue ui 可视化打包操作进入可视化面板需要通过vue.config.js来配置.js文件中,导致该js文件过大通常在一个vue项目中会用到很多插件什么,swi...
    99+
    2024-04-02
  • vue项目打包优化的示例分析
    小编给大家分享一下vue项目打包优化的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用vue-cli部署生产包时,发现...
    99+
    2024-04-02
  • 整理项目中vue.config.js打包优化配置方法
    目录整理项目中vue.config.js打包优化配置 webpack-bundle-analyzer 插件查看文件大小配置compression-webpack-plugin 用gz...
    99+
    2023-02-17
    vue.config.js打包优化 vue 打包优化
  • electron打包vue项目的方法步骤
    目录创建项目添加electron-builderelectron下载失败窗体运行打包exe白屏创建项目 点击这里 添加electron-builder 1、在项目目录下运行命令:vu...
    99+
    2024-04-02
  • vue项目打包以及优化的实现步骤
    目录vue项目的打包上线及优化vue项目的打包项目托管项目的常见优化vue项目的打包上线及优化 项目完成,我们会将项目进行上线,为了提升性能,我们往往会进行一些优化处理 vue项...
    99+
    2024-04-02
  • Vue项目打包优化实践指南(推荐!)
    目录业务背景项目打包时间分析方法优化配置的基本思路前置操作,先通过 webpack-bundle-analyzer 查看资源树1.vue.config.js 文件中修改:produc...
    99+
    2024-04-02
  • 详解java项目打包docker镜像的几种方式
    目录前言一、背景环境二、打包方式(三种)1. 在idea环境里打包方式一2. 在idea环境里打包方式二3. 基本打包方式三、启动服务四、总结前言 本文章记录了 sprin...
    99+
    2023-01-15
    java项目打包docker镜像 java打包docker镜像
  • Vue项目优化打包之前端必备加分项
    目录前言 一、路由懒加载 1. 为什么需要路由懒加载 2. 如何实现路由懒加载 3. 路由懒加载中的魔法注释 二、分析包大小 1. 需求 2. 如何生成打包分析文件 三、webpac...
    99+
    2024-04-02
  • 详解Vue项目的打包方式(生成dist文件)
    目录一、相关配置情况一(使用的工具是 vue-cil)情况二(使用的工具是 webpack) 二、打包 一、相关配置 情况一(使用的工具是 vue-cil) &n...
    99+
    2024-04-02
  • NodeJs使用webpack打包项目的方法详解
    目录WebpackWebPack的使用第一步:初始化项目:npm init -y第二步:新建 src/index.html第三步:安装模块Jquery npm i...
    99+
    2024-04-02
  • maven 打包项目的几种方式
    目录方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包方法二:使用maven-assembly-plugin插件打包方法三:使用ma...
    99+
    2024-04-02
  • Vue项目打包、合并及压缩优化网页响应速度的方法
    这篇文章主要介绍“Vue项目打包、合并及压缩优化网页响应速度的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue项目打包、合并及压缩优化网页响应速度的方法”文...
    99+
    2024-04-02
  • Java中ArrayList初始化的四种方法详解
    目录1 起因2 解决方案2.1 双括号法2.2 Arrays.asList2.3 stream2.4 Lists3 总结1 起因 在实际业务开发中, 我们经常会遇到需要临时创建一个数...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作