Vue优化策略_项目发布_01

文章目录

  • 一、移除console 策略
    • 1. 命令
      • 1.1. 插件官网:
      • 1.2. 安装babel-plugin-transform-remove-console
      • 1.3. 在babel.config.js或者.babelrc文件中配置
    • 2. 图形化(推荐使用)
      • 2.1. 在线图形化安装插件
      • 2.2. 在babel.config.js或者.babelrc文件中配置
  • 二、生成打包报告
    • 1. 通过命令参数的形式生成报告
      • 1.1. 插件安装
      • 1.2. 分析生成的report.html
    • 2. 可视化UI面板直接查看报告(推荐使用)
      • 2.1. 启动ui界面
      • 2.2. ui界面总览
  • 三、打包配置个性化
    • 1. webpack配置项简述
    • 2. 为开发环境和发布环境指定不同打包入口
      • 2.1. 开发环境入口文件src/main-dev.js
      • 2.2. 开发环境入口文件src/main-prod.js
      • 2.3. 自定义webpack打包配置
      • 2.4. 通过chainwebpack自定义打包入口
  • 四、资源加载优化
    • 1. 具体参考配置
    • 2. 指定CDN引用
    • 3. 通过CDN优化ElementUI的打包
      • 3.1. 操作流程
  • 五、首页内容定制
    • 1. 插件配置1
    • 2. 插件配置2
  • 六、路由异步+懒加载
    • 1. 命令安装
    • 2. 图形化安装(推荐使用)
    • 3. 配置插件
    • 4. 组件引入方式修改
    • 5. 把组件按组分块

一、移除console 策略

在企业内部:
在dev开发环境中需要有console,为了方便开发人员测试。
在发布环境中,却不能出现console调用的方法。

1. 命令

1.1. 插件官网:

https://www.npmjs.com/package/babel-plugin-transform-remove-console

1.2. 安装babel-plugin-transform-remove-console

npm install babel-plugin-transform-remove-console --save-dev

1.3. 在babel.config.js或者.babelrc文件中配置

配置参数:

{"plugins": ["transform-remove-console"]
}

企业内部完整配置(推荐使用):
由于这个文件属于全局的配置文件,因此,这里对打包环境做了判断,此配置只在发布或者上线环境中启动

// 项目发布阶段用到的插件
const prodPlugins = []
if (process.env.NODE_ENV === 'productio') {prodPlugins.push('transform-remove-console')
}module.exports = {presets: ['@vue/cli-plugin-babel/preset'],plugins: [['component',{libraryName: 'element-ui',styleLibraryName: 'theme-chalk'}],// 发布产品用到的插件数组...prodPlugins,]
}

官网截图:
在这里插入图片描述

2. 图形化(推荐使用)

2.1. 在线图形化安装插件

【依赖】-【添加依赖】-【开发依赖】搜索【babel-plugin-transform-remove-console】-【安装】
在这里插入图片描述

2.2. 在babel.config.js或者.babelrc文件中配置

企业内部完整配置(推荐使用):
由于这个文件属于全局的配置文件,因此,这里对打包环境做了判断,此配置只在发布或者上线环境中启动

// 项目发布阶段用到的插件
const prodPlugins = []
if (process.env.NODE_ENV === 'productio') {prodPlugins.push('transform-remove-console')
}module.exports = {presets: ['@vue/cli-plugin-babel/preset'],plugins: [['component',{libraryName: 'element-ui',styleLibraryName: 'theme-chalk'}],// 发布产品用到的插件数组...prodPlugins,]
}

在这里插入图片描述

二、生成打包报告

打包时,为了直观的发现项目中存在的问题,可以在打包时生成报告,通过报告分析项目中存在的问题。

1. 通过命令参数的形式生成报告

1.1. 插件安装

#通过vue-cli的命令选项可以生成打包报告
#--report选项可以生成report.html 以此来帮助分析打包内容
vue-cli-service build --report

1.2. 分析生成的report.html

在这里插入图片描述

2. 可视化UI面板直接查看报告(推荐使用)

在可视化的UI面板中,通过控制台和分析面板,可以方便的清晰直观多角度看到项目中存在的问题。

2.1. 启动ui界面

vue ui

2.2. ui界面总览

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

三、打包配置个性化

1. webpack配置项简述

通过vue-cli 3.0 工具生成的项目,默认隐藏了所有的webpack的配置项,目的是为了屏蔽项目的配置过程,让程序员吧工作的重心,放到具体功能和业务逻辑的实现上。

若有需要修改webpack默认配置需求,可以再项目目录中,按需创建vue.config.js这个配置文件,从而对项目的打包发布过程中作者自定义的配置(具体配置参考:https://cli.vuejs.org/zh/config/#vue_config.js)

// vue.config.js
//在这个配置文件中,自定义配置选项的对象
module.exports = {
//选项
}

2. 为开发环境和发布环境指定不同打包入口

默认情况下,Vue项目的开发模式与发布模式,公用一个打包的入口文件(即src/main.js),为了将项目的开发过程分离,我们可以分为2种模式,为开发环境和发布环境指定不同的入口文件。

2.1. 开发环境入口文件src/main-dev.js

2.2. 开发环境入口文件src/main-prod.js

2.3. 自定义webpack打包配置

在vue.config.js导出的配置对象中,新增configureWebpack或chainWebpack节点,来自定义webpack的打包配置。

configure和chainWebpack的作用相同,唯一的区别就是他们修改了webpack配置的方式:
①chainWebpack通过链式编程的形式,来修改默认的webpack配置
②configureWebpack通过操作对象的形式来修改默认webpack配置

二者具体差异:https://cli.vuejs.org/zh/guide/webpack.html#

2.4. 通过chainwebpack自定义打包入口

module.exports = {chainWebpack: config => {// 发布模式config.when(process.env.NODE_ENV === 'production', config => {config.entry('app').clear().add('./src/main-prod.js')})// 开发模式config.when(process.env.NODE_ENV === 'development', config => {config.entry('app').clear().add('./src/main-dev.js')})}
}

在这里插入图片描述

四、资源加载优化

通过externals加载外部的CDN资源

1. 具体参考配置

config.set('externals', {vue: 'Vue','vue-router': 'VueRouter',axios: 'axios',lodash: '_',echarts: 'echarts',nprogress: 'NProgress','vue-quill-editor': 'VueQuillEditor'})

2. 指定CDN引用

同事需要在public/index.html的文件头部,添加CDN资源引用

  <!-- nprogress 进度条的样式表文件 --><link rel="stylesheet" href="https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.css" /><!-- 富文本编辑器 的样式表文件 --><link rel="stylesheet" href="https://cdn.bootcss.com/quill/1.3.7/quill.core.min.css" /><link rel="stylesheet" href="https://cdn.bootcss.com/quill/1.3.7/quill.snow.min.css" /><link rel="stylesheet" href="https://cdn.bootcss.com/quill/1.3.7/quill.bubble.min.css" /><script src="https://cdn.bootcss.com/vue/2.6.11/vue.min.js"></script><script src="https://cdn.bootcss.com/vue-router/3.1.3/vue-router.min.js"></script><script src="https://cdn.bootcss.com/axios/0.19.2/axios.min.js"></script><script src="https://cdn.bootcss.com/lodash.js/4.17.15/lodash.min.js"></script><script src="https://cdn.bootcss.com/echarts/4.7.0/echarts.min.js"></script><script src="https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.js"></script><!-- 富文本编辑器的 js 文件 --><script src="https://cdn.bootcss.com/quill/1.3.7/quill.core.min.js"></script><script src="https://cdn.jsdelivr.net/npm/vue-quill-editor@3.0.4/dist/vue-quill-editor.js"></script>

3. 通过CDN优化ElementUI的打包

虽然在开发阶段,我们启用了element ui组件的按需加载,尽可能的减少打包的体积,但是那些被按需加载的组件,还是占用了较大的文件体积。此时,我们可以将element-ui中的组件,也通过CDN的形式来加载,这样可以进一步减少打包后的文件体积。

3.1. 操作流程

具体操作如下:
①在main-prod.js中,注释掉eleemnt-ui按需加载的代码
②在index.html的头部区域中,通过CDN来加载element-ui的js和css样式

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

五、首页内容定制

不同的打包环境下,首页内容可能会有所不同,我们可以通过插件的方式进行定制。

1. 插件配置1

module.exports = {chainWebpack: config => {// 发布模式config.when(process.env.NODE_ENV === 'production', config => {config.entry('app').clear().add('./src/main-prod.js')// 配置插件config.plugin('html').tap(args => {args[0].isProd = truereturn args})})// 开发模式config.when(process.env.NODE_ENV === 'development', config => {config.entry('app').clear().add('./src/main-dev.js')// 配置插件config.plugin('html').tap(args => {args[0].isProd = falsereturn args})})}
}

2. 插件配置2

在public/index.html的首页中,可以根据isProd的值,来决定如何渲染页面结构

 <!-- 按需渲染的页面标题 --><title><%= htmlWebpackPlugin.options.isProd ? '' : 'dev - ' %>电商后台管理系统</title><!-- 按需加载外部的CDN资源 --><% if(htmlWebpackPlugin.options.isProd){ %><!-- 通过external 加载外部的CDN资源 --><% } %>

在这里插入图片描述

六、路由异步+懒加载

当打包构建应用时,JavaScript 包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了。

结合 Vue 的异步组件和 Webpack 的代码分割功能,轻松实现路由组件的懒加载。

1. 命令安装

npm install --save-dev @babel/plugin-syntax-dynamic-import

2. 图形化安装(推荐使用)

安装开发依赖:
在这里插入图片描述
任选其一种即可

3. 配置插件

插件官网:
https://babeljs.io/docs/en/babel-plugin-syntax-dynamic-import/
在babel.config.js文件中添加:

{"plugins": ["@babel/plugin-syntax-dynamic-import"]
}

在这里插入图片描述

4. 组件引入方式修改

const Foo = () => import('./Foo.vue')const router = new VueRouter({routes: [{ path: '/foo', component: Foo }]
})

5. 把组件按组分块

官网案例:

const Foo = () => import(/* webpackChunkName: "group-foo" */ './Foo.vue')
const Bar = () => import(/* webpackChunkName: "group-foo" */ './Bar.vue')
const Baz = () => import(/* webpackChunkName: "group-foo" */ './Baz.vue')

展示项目:
在这里插入图片描述接下一篇:Vue优化策略_项目上线_02
https://gblfy.blog.csdn.net/article/details/105369051

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520459.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

双十一流量洪峰 支撑阿里核心业务的云数据库揭秘

背景介绍 今年双十一又有新纪录刷新&#xff0c;21秒成交额超10亿&#xff0c;数据瞬间膨胀到PB级&#xff0c;包裹数亿级&#xff0c;严苛的指标对数据库产品提出了更严格的需求。HybridDB作为阿里云自研的HTAP数据库经受住了流量洪峰的考验&#xff0c;顺利的完成了2019年双…

乘法原理的例题和答案_吃透高考数学17个必考题型,基础再差也能考130!(内附解题技巧+例题解析)...

2019高考数学难度比例为7&#xff1a;2&#xff1a;1&#xff0c;也就是说80%都是基础题。然而数学却是高考中最拉分的。90%的学生都缺少一套科学&#xff0c;高效的提分方法&#xff0c;尤其到了冲刺阶段&#xff01;为此&#xff0c;我们为大家整理了高考数学历年17个必考题型…

为何“爱辞职”成为了90后的又一标签?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | AlfredWu责编 | 阿秃金三银四金九银十&#xff0c;又到了每年的秋招时节。在各企业HR狂刷简历企图招贤纳士的同时&#xff0c;内部年轻员工心中实则也暗流涌动&#xff1a;他们有些已提交了辞呈&#xff0c;有些在骑驴找马物…

双11大考 POLARDB分钟级弹性让企业轻松扩展

POLARDB优势解读系列文章之——分钟级弹性 无处不在的脉冲计算 阿里有双11&#xff0c;中国有春运&#xff0c;高考后有分数出来的那天&#xff0c;歌迷心中有周杰伦演唱会门票在线开售之时。。。。有人的地方就有江湖&#xff0c;有人的地方也有脉冲计算&#xff0c;这些热点…

Vue优化策略_项目上线_02

接上一篇&#xff1a;Vue优化策略_项目发布_01 https://gblfy.blog.csdn.net/article/details/105359879 文章目录一、通过node创建web服务器1. 创建文件夹2. 初始化包管理配置文件3. 安装express插件4. 复制vue打包后dist5. 创建app.js配置6. 运行项目并浏览器访问二、开启gzi…

深度解析双十一背后的阿里云 Redis 服务

在一片欢呼之中&#xff0c;2018年的双十一完美收官&#xff0c;各项数据不出意外的刷出了新的记录&#xff0c;亮眼的数据背后是阿里过硬的技术支撑。其中阿里云Redis不仅保障了阿里集团内部业务双十一的流量洪峰平稳度过&#xff0c;也让使用阿里云Redis的各个客户度过了一个…

oracle中prad函数_等保测评2.0:Oracle身份鉴别

一、说明本篇文章主要说一说oracle数据库中身份鉴别控制点中测评项a的相关内容和理解。二、测评项aa)应对登录的用户进行身份标识和鉴别&#xff0c;身份标识具有唯一性&#xff0c;身份鉴别信息具有复杂度要求并定期更换&#xff1b;三、测评项a要求1应对登录的用户进行身份标…

区块链真的会火吗?

区块链的境地如何&#xff1f;2019年10月25日&#xff0c;应该是区块链技术人以及对区块链感兴趣的人狂欢的一天&#xff0c;因为在那天国家领导人发表讲话&#xff0c;将区块链作为核心技术自主创新重要突破&#xff0c;随着这个新闻爆出&#xff0c;区块链市场炸开了锅&#…

双11奇迹背后的大数据平台,不喧哗,自有声!

00:02:05 成交额超100亿 00:57:56 成交额超666亿 01:47:26 成交额超1000亿 15:49:39 成交额超1682亿 22:28:37 成交额超2000亿 2018年双11新纪录2135亿 高速跳转的数字&#xff0c;不断刷新的状态&#xff0c;光缆中狂奔的代码&#xff0c;键盘上飞舞的手指… 新的记录 绝非十…

阿里云推PostgreSQL 10 高可用版

2015年&#xff0c;阿里云宣布正式推出RDS for PostgreSQL服务,届时&#xff0c;阿里云成为国内首家同时支持MySQL、SQL Server 和PostgreSQL关系型数据库的云计算服务商。 用户在云上就能享受PostgreSQL引擎带来的对SQL标准和NoSQL的高度兼容、强大的处理复杂查询能力、以及丰…

百度万亿流量的转发引擎BFE开源了!华为折叠屏曝光,采用传统翻盖式手机折叠方案;微软将关闭安卓iOS平台Cortana……...

关注并标星星CSDN云计算 速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周两次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go goOPPO Realme 5s&#xff08;图片来源网络&#xf…

《TableStore最佳实践:GEO索引打造店铺搜索系统》

一、方案背景 对于一套GEO管理系统&#xff0c;其核心点与瓶颈在于数据库的存储性能与查询能力&#xff1b;一方面&#xff0c;存储服务需要应对海量数据的低延迟存、读&#xff0c;另一方面&#xff0c;存储服务也要提供高效的GEO多维度数据检索。表格存储&#xff08;TableS…

单一窗口关区备案_深圳跨境电商企业进出口备案,赶紧码下学习

小编君抽空为大家梳理了深圳跨境企业各项出口资质及需要的材料&#xff0c;如下&#xff1a;1工商局营业执照经营范围的变更&#xff0c;税务局办理经营范围变更公司经营范围上如果没有“进出口”或“货物及技术进出口”字样&#xff0c;就得先变更经营范围。如果公司在注册时已…

《TableStore最佳实践:轻松实现轨迹管理与地理围栏》

一、方案背景 轨迹管理系统日常生活中使用非常普遍&#xff0c;如外卖派送轨迹、快递物流流转、车辆定位轨迹等。该场景与地理位置管理类似&#xff0c;核心点与瓶颈都在数据库的存储性能与查询能力&#xff0c;同时需要时间字段正序排列&#xff0c;保证轨迹点顺序&#xff1…

蚂蚁金服、微众银行、度小满都来了,智能金融将何去何从?(文末福利)

&#xff08;大会官网 https://t.csdnimg.cn/U1wA&#xff09;金融业是一个数据堆砌起来的行业&#xff0c;有客户信息、风险控制数据、交易数据等等&#xff0c;如果这些数据没有被有效的管理和分析&#xff0c;会增加企业的经营风险和降低企业的盈利能力。但有了云计算与人工…

RuoYi-Vue 部署 Linux环境 若依前后端分离项目(jar包+nginx 单机版本)

文章目录一、软件安装部署1. 安装jdk2. mysql8安装部署3. redis安装4. nginx 安装部署5. 克隆项目二、后端项目2.1. 修改数据库连接2.2. 修改Redis连接信息2.3. 文件路径2.4. 日志存储路径调整2.5. 编译打包三、前端项目3.1. 安装依赖3.2. 构建生产环境四、项目部署4.1.创建目录…

五子棋项目结束总结_居家活动系列总结

刚开始一直待家里真的好无聊......不过后来电气学院举办了一系列线上活动&#xff0c;在家里也能参与&#xff01;我们一起来看看吧&#xff01;厨艺比赛2020年3月2日-3月6日&#xff0c;为了鼓励大家好好利用假期时间&#xff0c;享受生活。电气工程学院学生会举办“厨艺分享”…

4K超清,2500万人在线,猫晚直播技术全解读

2018天猫双11已经过去一周&#xff0c;各路快递也在快马加鞭送到大家手中。但对于剁手党而言&#xff0c;天猫双11也不仅仅是简单意义上的“买买买”&#xff0c;更是一场边看边玩的狂欢盛宴。 作为双11的必备节目&#xff0c;今年的猫晚通过优酷、浙江卫视、东方卫视进行了全…

shell取当前月份第一天_红帽认证8.0版本即将发布!Ansible和shell脚本自动化将重点考察...

红帽厂商官方通知&#xff0c;红帽RHCE考试&#xff08;包含EX200和EX300两门&#xff09;版本7的截止时间是&#xff1a;2020年4月30日。 即2020年5月份之后将停止版本7的考试&#xff0c;包括正考和补考。RHCE版本7中包含EX200&#xff08;v7&#xff09;和EX300&#xff08;…

阿里云重磅发布RDS for SQL Server AlwaysOn集群版

2018年双十一刚过&#xff0c;阿里云数据库发布RDS for SQL Server AlwaysOn集群版&#xff0c;这是业界除微软云SQL Database外&#xff0c;首家云计算公司基于SQL Server最新AlwaysOn核心技术实现的数据库集群版&#xff0c;并且是经过双十一检验的商业化版本。 全形态的产品…