接上篇《63、指定打包入口及加载外部CDN资源》
上一篇我们为开发模式与发布模式制定不同的打包入口,然后为项目加载外部CDN资源。本篇我们来学习通过CND优化ElementUI的打包,以及完成根据生产和测试环境进行不同定制不同的首页内容。

一、通过CDN优化ElementUI的打包

经过上一篇的折腾,我们可以发现项目的体积确实小了不少,但是观察vueUI面板的资源信息,可以看到还是有一个感叹号:

说明当前的文件体积还是有点大,那么如何把它优化的更小呢?

我们可以注意到上图右侧依赖项里,占据绝大多数体积的还是ElementUI依赖,所以我们还是需要把ElementUI从“chunk-vendors.5bd4ca24.js”中抽出去,即为ElementUI依赖设置cdn加载。

具体操作如下:
1.在main-prod中,注释掉element-ui按需加载的代码:

2.在index.html的头部区域中,通过cdn加载element-ui的js和css样式:

<!-- element-ui 的样式表文件 -->
<link rel="stylesheet" href="https://cdn.staticfile.org/element-ui/2.8.2/theme-chalk/index.css" />
<!-- element-ui 的 js 文件 -->
<script src="https://cdn.staticfile.org/element-ui/2.8.2/index.js"></script>

然后vue.config.js在打包的时候就会不进行ElementUI依赖的打包,而是选择直接访问CDN资源。我们重新在vueUI打包,可以看到体积明显又变小了,然后没有报错,同时依赖项中也不再显示ElementUI依赖了。这里我们的优化就十分彻底了:

二、首页内容自定制

不同的打包环境下,首页内容可能会有所不同。首页的html代码在public/index.html下(也就是我们刚刚放cdn配置的地方。):

我们修改其title内容为“电商后台管理系统”:

这时不论是开发还是测试环境,打开页面都会看到这个title:

注:如果测试环境运行页面空白了,请将“public/index.html”中的“vue-router.min.js”引入给注释掉,因为和测试环境的main引入冲突了。
如果我们想实现测试环境和生产环境的首页显示不同内容该怎么做呢?例如上面的title开发环境我们前面加个“dev-”,生产环境加个“prod-”。我们可以通过插件的方式进行定制,插件配置如下:

chainWebpack: config => {config.when(process.env.NODE_ENV === 'production', config => {config.plugin('html').tap(args => {args[0].isProd = truereturn args})})config.when(process.env.NODE_ENV === 'development', config => {config.plugin('html').tap(args => {args[0].isProd = falsereturn args})})
}

即这里为html首页定义了一个名为“isProd”的参数,如果当前打包环境是生产环境的话,就赋值为true,如果不是就赋值为false。我们就可以通过这个参数判断当前环境,进而显示不同的内容。
我们把上面设置args的逻辑加到我们的vue.config.js中:
获取配置项对象的方法,就是在html页面中,通过“<%= %>”和“<% %>”包裹动态参数和动态逻辑,通过“htmlWebpackPlugin.options”取得打包插件对象下的打包参数对象,并进而取得其配参数“isProd”,如标题的设置(三元表达式判断,如果是生产环境,拼接“prod-”,如果是开发环境,拼接“dev-”):

<!-- 按需渲染页面的标题 -->
<title><%= htmlWebpackPlugin.options.isProd ? 'prod-' : 'dev-' %>电商后台管理系统</title>
其次为了防止测试环境加载cdn资源导致依赖冲入,可以在上面添加依赖的地方设置条件:
<!-- 按需加载外部的 CDN 资源 -->
<% if(htmlWebpackPlugin.options.isProd) { %>
<!--通过 externals 加载的外部 CDN 资源-->
<% } %>


效果如下:

可以看到title显示为开发模式,并且cdn资源都没有被加载出来。
生产环境我们在vueUI中build完毕后,在生成的dist文件下找到index.html文件:

这个是编译后的,我们查看源码,可以看到title拼接了“prod-”,并且cdn资源也都加载出来了:

至此我们实现了根据不同的编译环境,自定制不同的首页内容。

下一篇我们继续优化项目,来学习“路由懒加载”。

参考:黑马程序员(www.itheima.com)Vue项目实战教学视频

转载请注明出处:https://blog.csdn.net/acmman/article/details/126689664

【VUE项目实战】64、CND优化ElementUI以及首页内容定制相关推荐

  1. 【VUE项目实战】59、订单的物流信息查询功能

    接上篇<58.订单修改收货地址的功能> 上一篇我们完成了订单列表的修改收货地址功能,本篇我们来实现订单的物流信息查询功能. 一.要实现的效果 我们要实现点击操作列的"物流进度&q ...

  2. 【VUE项目实战】32、权限管理-实现角色列表

    接上篇<31.权限管理-实现权限列表> 上个阶段我们完成了权限管理模块,本篇我们来介绍用户.角色和权限三者的关系,并完成角色管理列表模块. 一.权限管理业务分析 通过权限管理模块,控制不同 ...

  3. 【VUE项目实战】54、商品添加功能(四)-商品图片上传模块

    接上篇<53.商品添加功能(三)-商品参数及属性模块> 上一篇我们完成了商品参数和商品属性面板的开发,本篇我们来完成商品图片上传模块的开发. 一.要实现的效果 我们在商品图片页签,需要放置 ...

  4. 【VUE项目实战】41、添加商品分类功能(二)

    接上篇<40.添加商品分类功能(一)> 上一篇我们实现了部分添加商品分类的功能,本篇我们来继续处理添加分类时表单相关的内容. 一.优化上一章剩余的小问题 首先我们先处理一下选中之后想要清除 ...

  5. Vue项目实战 —— 后台管理系统( pc端 ) 第三篇

    ​前期回顾    ​  Vue项目实战 -- 后台管理系统( pc端 ) 第二篇_0.活在风浪里的博客-CSDN博客前期回顾 Vue项目实战 -- 后台管理系统( pc端 ) 第一篇 _0.活在风浪里 ...

  6. 1.vue项目实战笔记(已完结)

    vue项目实战笔记 目标 目录 1.项目概述 1.1电商项目基本业务概述 1.2电商后台管理系统的功能 1.3电商后台管理系统的开发模式(前后端分离) 1.4电商后台管理系统的技术选型 1.前端项目技 ...

  7. vue 动态添加class_前端开发:Vue项目实战-Music

    大家好,我来了,本期为大家带来的前端开发知识是"前端开发:Vue项目实战-Music",有兴趣做前端的朋友,和我一起来看看吧! 主要内容 项目环境搭建 路由导航实现 ListVie ...

  8. vue 将字符串最后一个字符给替换_前端开发:Vue项目实战-Music

    大家好,我来了,本期为大家带来的前端开发知识是"前端开发:Vue项目实战-Music",有兴趣做前端的朋友,和我一起来看看吧! 主要内容 项目环境搭建 路由导航实现 ListVie ...

  9. 【VUE项目实战】68、使用pm2管理项目

    接上篇<67.上线-开启gzip和配置HTTPS服务> 上一篇我们学习了如何开启gzip配置来减少文件访问体积,并配置HTTPS服务.本篇我们讲解一下如何使用pm2管理项目. 本篇是该系列 ...

最新文章

  1. 转- prototype
  2. LightOJ - 1098 A New Function
  3. 使用vuex 进行组件之间的通讯
  4. oracle外部表导入,oracle 外部表导入时间日期类型数据
  5. 《C语言及程序设计》程序填空——字符数组与字符串处理
  6. 软件设计模式之适配器模式(JAVA)
  7. 领域情报搜索实践:真实场景下的问答实施策略与风险分析
  8. 西安交大送大一新生这本书,你读过吗?12本有趣有料的科普书盘点
  9. Java实现动画逐字打印
  10. 面向机器学习的特征工程 三、文本数据: 展开、过滤和分块
  11. [转] Mou 一个Markdown工具 语法规则文档(最后)
  12. 目录字串最后都不要带目录分隔符
  13. MKVToolNix v72.0 MKV视频封装工具
  14. jspstudy mysql_使用JspStudy集成环境快速部署jsp项目
  15. 中国公用计算机互联网网络简称为什么,中国公用计算机互联网国际联网管理办法...
  16. 世界坐标系、相机坐标系、图像坐标系、像素坐标系
  17. Python终端美化库Rich
  18. 人民搜索2013年招聘的三道算法题 西安站
  19. Browser 相关内容
  20. 超级计算机中心建设方案,我校举办大连理工大学超算中心建设方案论证会

热门文章

  1. Redies未授权访问
  2. 布林带止盈止损策略改进
  3. 10/9 看的何向南老师团队关于bias和debias最新综述;还可以吧
  4. P2746 P2812 [USACO5.3]校园网Network of Schools[SCC缩点]
  5. 1.9 Cubemx_STM32F4_57步进电机(一)----驱动代码
  6. 打开eclipse 运行发现tomcat出问题。如路径找不到 (1)eclipse 运行出现:The archive:C:/tomcat/bin/bootstrap.jar which is refe
  7. H5引入Web调试工具、VConsole引入
  8. 爬虫实战 | 爬取东方财富网股票数据
  9. 单路D触发器做自锁开关
  10. 【原创】被误解的匈牙利命名法