IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue首页加载优化vue使用cdn加载插件vue cdn优化 -> 正文阅读

[JavaScript知识库]vue首页加载优化vue使用cdn加载插件vue cdn优化

前言

问题: vue 线上打开首页速度太慢,js文件太大,且全部走当前服务器获取 js/css 数据,服务器带宽也跟不上

处理方式: 把一些 js/ css 使用 cdn 的方式进行加载

优化后使用 cdn 地址加载,浏览器可以快速拉取到数据

在这里插入图片描述
优化效果 : 优化前 15-20 秒完成加载, 优化后 2秒内完成加载

1、main.js

1、配置排除依赖
2、配置cdn地址
3、关闭打包生成 map.js 文件

定义配置信息

// 是否是生产环境
const isProduction = process.env.NODE_ENV !== 'development';
// 是否需要使用cdn
const isNeedCdn = true
// cdn 加速文件
const assetsCDN = {
  /**
   * externals对象的属性名为package.json中,对应的库的名称(固定写法),属性值为引入时你自定义的名称
   */
  externals: {
    'vue': 'Vue',
    'axios': 'axios',
    'element-ui': 'ELEMENT',
    'vue-router': 'VueRouter',
    '@smallwei/avue': 'AVUE',
  },
  css: [
    'https://cdn.staticfile.org/element-ui/2.15.9/theme-chalk/index.min.css',
    //'https://cdn.jsdelivr.net/npm/@smallwei/avue@2.9.4/lib/index.css',
    'https://unpkg.com/@smallwei/avue@2.9.4/lib/index.css',
  ],
  js: [
    'https://cdn.staticfile.org/vue/2.6.14/vue.min.js',
    'https://cdn.staticfile.org/element-ui/2.15.9/index.min.js',
    'https://cdn.staticfile.org/axios/0.27.2/axios.min.js',
    'https://cdn.staticfile.org/vue-router/3.5.1/vue-router.min.js',
    //'https://cdn.jsdelivr.net/npm/@smallwei/avue@2.9.4/lib/avue.min.js' //慢
    'https://unpkg.com/@smallwei/avue@2.9.4/lib/avue.min.js'

  ]
}

加入配置
externals = 排除
cdn 信息注入到配置中

module.exports = defineConfig({

 // 首页访问优化: 关闭生成的map.js 文件  https://blog.csdn.net/z591102/article/details/108076212
  productionSourceMap: false,
  /**
   * 首页访问优化: 排除依赖使用cdn方式引入
   * 参考: https://blog.csdn.net/weixin_43919509/article/details/124149728
   * @param config
   */
  configureWebpack: {
    // 生产环境,则添加不参与打包的包名和依赖包的名称
    externals: (isProduction || isNeedCdn) ? assetsCDN.externals : {}
  },
  chainWebpack: config => {
    // 生产环境或需要cdn时,才注入cdn
    if (isProduction || isNeedCdn) {
      config.plugin('html').tap(args => {
        args[0].cdn = assetsCDN
        return args
      })
    }
  },


});

2、public/index.html

读取 main.js 注入的配置

    <!-- 使用CDN的CSS文件 -->
    <% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.css) { %>
    <link rel="stylesheet" href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" />
    <% } %>

    <!-- 使用CDN的JS文件 -->
    <% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.js) { %>
    <script src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script>
    <% } %>

3、效果查看

1、首页会写入 css/js 文件

在这里插入图片描述2、打包后的 js 文件大小会下降


在这里插入图片描述
关闭 生成map 以及 使用cdn 方式
在这里插入图片描述

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-07-03 10:40:34  更:2022-07-03 10:43:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/11 10:00:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码