位置: 编程技术 - 正文

详解基于vue-cli优化的webpack配置(vue基于什么)

编辑:rootadmin

推荐整理分享详解基于vue-cli优化的webpack配置(vue基于什么),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vuecli使用,详解基于python的图像Gabor变换及特征提取,vue-cli入门,vuecli使用,详解基于python的图像Gabor变换及特征提取,基于vue的ui,详解基于python的图像Gabor变换及特征提取,基于vue的ui,内容如对您有帮助,希望把文章链接给更多的朋友!

最近的项目度过了开始忙碌的基建期,也慢慢轻松下来,准备记录一下自己最近webpack优化的措施,希望有温故知新的效果。

项目采用的是vue全家桶,构建配置都是基于vue-cli去改进的。关于原始webpack配置大家可以看下这篇文章vue-cli#2.0 webpack配置分析,文章基本对于文件每行代码都做了详细的解释,有助于更好的理解webpack。

仔细总结了一下,自己的优化基本还是网上流传的那几点

通过 externals 配置来提取常用库,引用cdn 合理配置CommonsChunkPlugin 善用alias dllplugin启用预编译 happypack多核构建项目

externals

文档地址 import 的包(package)打包到 bundle 中,而是在运行时(runtime)再去从外部获取这些扩展依赖(external dependencies)。

CommonsChunkPlugin

文档地址 插件,是一个可选的用于建立一个独立文件(又称作 chunk)的功能,这个文件包括多个入口 chunk 的公共模块。通过将公共模块拆出来,最终合成的文件能够在最开始的时候加载一次,便存起来到缓存中供后续使用。这个带来速度上的提升,因为浏览器会迅速将公共的代码从缓存中取出来,而不是每次访问一个新页面时,再去加载一个更大的文件。

resolve.alias

文档地址 import 或 require 的别名,来确保模块引入变得更简单。例如,一些位于 src/ 文件夹下的常用模块:

不过经过自己的实践最后三点是对自己项目优化最大的。文章也主要对后面几点详细说明一下

原来打包一个项目所需要的时间基本在秒左右,那再经过后面三步优化大概要多久呢

1.使用dllplugin预编译与引用

首先为什么要引用Dll?在网上浏览了一些文章后,我发现上除了加快构建速度以外,使用webpack的dll还有一个好处。

Dll打包以后是独立存在的,只要其包含的库没有增减、升级,hash也不会变化,因此线上的dll代码不需要随着版本发布频繁更新。 因为使用Dll打包的基本上都是独立库文件,这类文件有一个特性就是变化不大。当我们正常打包这些库文件到一个app.js里的时候,由于其他业务文件的改变,影响了缓存对构建的优化,导致每次都要重新去npm包里寻找相关文件。而使用了DLL之后,只要包含的库没有升级, 增减,就不需要重新打包。这样也提高了构建速度。

那么如何使用Dll去优化项目呢

详解基于vue-cli优化的webpack配置(vue基于什么)

首先要建立一个dll的配置文件,引入项目所需要的第三方库。这类库的特点是不需要随着版本发布频繁更新,长期稳定。

基本配置参数和webpack基本一模一样,相信来看优化的都明白什么意思,我就不解释了。然后执行代码编译文件。(我的配置文件是放在build里面,下方路径根据项目路径需要变动)

当运行完执行后,会生成两个新文件在目录同级,一个是生成在dist文件夹下的verdor.js,里面是刚刚入口依赖被压缩后的代码;一个是dll文件夹下的verdor-manifest.json,将每个库进行了编号索引,并且使用的是id而不是name。

接下去你只要去你的webpack配置文件的里的plugin中添加一行代码就ok了。

这时候再执行webpack命令,可以发现时间直接从秒锐减到了s左右,整整快了一倍有木有(不知道是不是因为自己依赖库太多了才这样的,手动捂脸)。

2.happypack多线程编译

一般node.js是单线程执行编译,而happypack则是启动node的多线程进行构建,大大提高了构建速度。使用方法也比较简单。以我项目为例,在插件中new一个新的happypack进程出来,然后再使用使用loader的地方替换成对应的id

这时候再去执行编译webpack的代码,打印出来的console则变成了另外一种提示。而编译时间大概从s优化到了s左右(感觉好像没有网上说的那么大,不知道是不是因为本身js比重占据太大的缘故)。

3.善用alias

3.配合resolve,善用alias

本来是没有第三点的,只不过在搜索网上webpack优化相关文章的时候,看到用人提到把引入文件改成库提供的文件(原理我理解其实就是1.先通过resolve指定文件寻找位置,减小搜索范围;2.直接根据alias找到库提供的文件位置)。

vue-cli配置文件中提示也有提到这一点,就是下面这段代码

然后我将其他所有地方关于vue的引用都替换成了vue$之后,比如

时间竟然到了s,也是把我吓了一跳。。。

然后我就把jquery,axios,vuex等等全部给替换掉了。。。大概优化到了9s左右,美滋滋,O(∩_∩)O~~

4.webpack3升级

本来是没第四点,刚刚看到公众号推出来一篇文章讲到升级到webpack3的一些新优点,比如Scope Hoisting(webpack2升级到webpack3基本上没有太大问题)。通过添加一个新的插件

不过在添加这行代码之后,构建时间并没有太大变化,不过运行效率没试过,不知道新的效果怎么样

好了基本上感觉就是以上这些效果对项目的优化最大,虽然没有到网上说的那种只要3~4秒时间那么变态,不过感觉基本8,9秒的时间也可以了。

标签: vue基于什么

本文链接地址:https://www.jiuchutong.com/biancheng/375869.html 转载请保留说明!

上一篇:Vuejs实现购物车功能(vue.js购物车)

下一篇:Angular 4中如何显示内容的CSS样式示例代码(angular nz)

  • 小规模附加税如何做帐
  • 已申报税额是什么意思可以退吗
  • 收入增长率的计算方法
  • 全年没有超过起征点需要汇算吗
  • 原材料的入账价值包括保险费吗
  • 应发工资和实发工资计算公式excel
  • 坏账核销计入营业利润吗
  • 普通发票,供货怎么开
  • 季度奖需要交税吗
  • 存货盘盈涉税问题
  • 企业的定期存款
  • 公司注销时应付职工薪酬怎么处理
  • 房地产企业的收入信息披露范围进一步扩大
  • 未分配利润应该在借方还是贷方??
  • 怎么用手撕胶带图解
  • 印花税可以计入开办费吗
  • 旧房转让土地增值税核定
  • 财务报表包含哪些表
  • 工厂没有生产许可证可以生产吗
  • PHP:oci_set_client_info()的用法_Oracle函数
  • 原始凭证的内容有哪些
  • php句法规则详解图
  • 领用增值税专用发票需要旧发票兑换吗
  • 低值易耗品是怎样的
  • 公司挂靠社保的人员需要申报个人所得税吗?
  • php实现原理
  • 输入什么验证
  • php中数据库怎么设计
  • vue路由使用方法
  • 企业所得税包含在税金及附加里面吗
  • 帝国cms手机模板是什么
  • 股东分红放到哪个会计科目
  • 商业承兑汇票贴现会计分录
  • dedecms进入数据库
  • 利息收入怎么入账
  • 增值税的征收对象是谁
  • 期权权利金的计算公式
  • 工程项目需要交5000万保证金合理吗
  • 跨月的普通发票怎么开红字发票
  • 缴纳的增值税怎么做账
  • 财政补助结转余额在借方还是贷方
  • 关联公司之间的借款
  • 个体工商户是否要交税
  • sql server怎么向表里添加数据
  • cmd命令怎么进入d盘文件夹
  • 安装windows7之前,应该做好准备工作
  • win7删除通知区域图标
  • windows xp设置屏保密码
  • 一台电脑多个用户组怎么显示在一个屏幕上
  • window扫雷游戏在哪里
  • windows用户如何添加新用户账户信息
  • 怎么用win7兼容模式运行
  • win10 edge浏览器崩溃
  • Win7系统怎么打开文件后缀名
  • win7开机时出现一堆英文
  • win7任务栏变小图标
  • win7如何彻底卸载软件
  • 日历功能在哪里设置
  • win7系统桌面图标设置
  • pdf在电脑上打开
  • [置顶]电影名字《收件人不详》
  • android 滚动选择器
  • 安装运行windows
  • java程序员练手项目
  • html中清除浮动的关键代码
  • 文本框几种常用属性
  • python的入门教程
  • unity中canvas怎么调框大小
  • Android 为LinearLayout增加分割线 divider
  • asyncio 的 coroutine对象 与 Future对象使用指南
  • python调大小
  • Android android.support.v4.widget.SlidingPaneLayout 侧滑示例
  • 工会经费申报表在哪里查询
  • 重新税务登记程序有哪些
  • 湖南城乡居民医疗保险咨询电话
  • 已经交完费还可以用医保卡报销吗
  • 丰台和朝阳中间是哪里
  • 工商税务登记流程视频
  • 公司购买的汽车可以一次进入费用吗
  • 代理记账费用可以全额抵扣吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设