千家信息网

Vue项目优化打包的示例分析

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍了Vue项目优化打包的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、路由懒加载1. 为什么需要路由懒加载当
千家信息网最后更新 2026年11月03日Vue项目优化打包的示例分析

这篇文章主要介绍了Vue项目优化打包的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

    一、路由懒加载

    1. 为什么需要路由懒加载

    当刚运行项目的时候,发现刚进入页面,就将所有的js文件和css文件加载了进来,这一进程十分的消耗时间。
    如果打开哪个页面就对应的加载响应页面的js文件和css文件,那么页面加载速度会大大提升。

    2. 如何实现路由懒加载

    vue官方文档:路由懒加载

    代码如下(示例):

    {    path: '/login',    component: () => import('@/views/login/index'),    hidden: true  },

    3. 路由懒加载中的魔法注释

    通过在注释中指定webpackChunkName,可以自定义这个文件的名字。

    代码如下(示例):

    components = () => import(/* webpackChunkName:"login"*/ "../component/Login.vue")

    二、分析包大小

    1. 需求

    想要知道打包生成的文件中,每个文件所占的空间大小。以便于我们分析,对代码进行优化处理。

    2. 如何生成打包分析文件

    终端中运行 npm run preview -- --report, 这个命令会从我们的入口main.js进行依赖分析,分析出各个包的大小。最终会在生成的dist文件夹下生成一个report.html的文件,打开后就可以看到我们在项目使用文件占据的空间大小啦~
    (效果图如下:)

    三、webpack配置排除打包

    1. 需求

    将一些不常用的包,排除在生成的打包文件以外。

    例如:上图所示的xsxl.js 、 element.js,可以将其排除在打包生成的文件以外

    2. 排除打包

    找到 vue.config.js, 添加 externals 项,具体如下:

    代码如下(示例):

    configureWebpack: {  // 配置单页应用程序的页面的标题  name: name,  externals: {     /**      * externals 对象属性解析。      *  基本格式:      *     '包名' : '在项目中引入的名字'      *      */    'vue': 'Vue',    'element-ui': 'ElementUI',    'xlsx': 'XLSX'  },  resolve: {    alias: {      '@': resolve('src')    }  }}

    四、 引用网络资源

    1. 需求

    我们进行了上一步操作以后,打包生成后的包小了很多。但是呢,没有这些依赖包的话,项目上线是没有办法运行的。那么就需要引用网络中的资源,来支持我们代码的运行。

    2. CDN

    • CDN全称叫做"Content Delivery Network",中文叫内容分发网络。我们用它来提高访问速度

    • 把一些静态资源:css, .js,图片,视频放在第三方的CDN服务器上,可以加速访问速度。

    好处:

    1. 减少应用打包出来的包体积

    2. 加快静态资源的访问

    3. 利用浏览器缓存,不会变动的文件长期缓存

    3. 实现步骤

    注意:在开发环境时,文件资源还是可以从本地node_modules中取出,而只有项目上线了,才需要去使用外部资源。此时我们可以使用环境变量来进行区分。具体如下:

    代码如下(示例):

    在vue.config.js文件中:

    let externals = {}let cdn = { css: [], js: [] }const isProduction = process.env.NODE_ENV === 'production' // 判断是否是生产环境if (isProduction) {  externals = {      /**      * externals 对象属性解析:      * '包名' : '在项目中引入的名字'    */      'vue': 'Vue',      'element-ui': 'ELEMENT',      'xlsx': 'XLSX'  }  cdn = {    css: [      'https://unpkg.com/element-ui/lib/theme-chalk/index.css' // element-ui css 样式表    ],    js: [      // vue must at first!      'https://unpkg.com/vue@2.6.12/dist/vue.js', // vuejs      'https://unpkg.com/element-ui/lib/index.js', // element-ui js      'https://cdn.jsdelivr.net/npm/xlsx@0.16.6/dist/xlsx.full.min.js', // xlsx    ]  }}

    webpack配置externals配置项

    configureWebpack: {  // 配置单页应用程序的页面的标题  name: name,  externals: externals,  resolve: {    alias: {      '@': resolve('src')    }  }}

    通过 html-webpack-plugin注入到 index.html之中:

    在vue.config.js文件中配置:

    chainWebpack(config) {  config.plugin('preload').tap(() => [    {      rel: 'preload',      fileBlacklist: [/\.map$/, /hot-update\.js$/, /runtime\..*\.js$/],      include: 'initial'    }  ])  // 注入cdn变量 (打包时会执行)  config.plugin('html').tap(args => {    args[0].cdn = cdn // 配置cdn给插件    return args  })  // 省略其他...}

    找到 public/index.html 通过配置CDN Config 依次注入 css 和 js。

    修改head的内容如下:

                        <%= webpackConfig.name %>            <% for(var css of htmlWebpackPlugin.options.cdn.css) { %>                <% } %>        <% for(var js of htmlWebpackPlugin.options.cdn.js) { %>          <% } %>  

    五、 打包去除console.log

    1. 需求

    在项目打包上线后,去除掉代码中所有的console.log

    2. 代码演示

    在vue.config.js文件中配置:

    代码如下(示例):

    chainWebpack(config) {    config.optimization.minimizer('terser').tap((args) => {      args[0].terserOptions.compress.drop_console = true      return args    })}

    感谢你能够认真阅读完这篇文章,希望小编分享的"Vue项目优化打包的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

    文件 项目 代码 配置 示例 分析 生成 资源 页面 路由 大小 篇文章 需求 运行 名字 环境 网络 速度 应用 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 花魁咖啡 上海喔噻互联网科技有限公司 互联网科技公司税收优惠 智能科技公司是互联网公司吗 互联网巨头科技公司 贷财互联网科技 赫美联合互联网科技 互联网科技股有哪些 山东吉时兔互联网科技有限公司 青海省互联网新科技 世界互联网科技公司市值排名 互联网科技大奖都有哪些公司 亳州好赞互联网科技有限公司 浙南科技城互联网大厦建设工程 科技大学互联网 富国互联网科技002692 广州有谷有贝互联网科技有限公司 珠海东科互联网科技有限公司 银川新华互联网科技学校招聘 小牛互联网科技有限公司地址 互联网科技社 互联网金融 科技金融 上海万想互联网科技 随着互联网科技发展 互联网科技包装股份有限公司上市 互联网科技和医药行业 科技互联网公司两年变化 数字互联网科技有限公司 互联网科技创新创业项目 瑞安市蟠桃会互联网科技有限公司
    0