位置: IT常识 - 正文

记 vue-cli-plugin-dll 使用,优化vue-cli项目构建打包速度

编辑:rootadmin
dll ? 动态链接库英文为DLL,是Dynamic Link Library的缩写。DLL是一个包含可由多个程序,同时使用的代码和数据的库。 起因 在查看hzero前端项目框架介绍时提到了dll,外加之前经常看见dll文件,于是有了兴趣了解一下 webpack dll。 webpack官网介绍 D ... dll ?

推荐整理分享记 vue-cli-plugin-dll 使用,优化vue-cli项目构建打包速度,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

动态链接库英文为DLL,是Dynamic Link Library的缩写。DLL是一个包含可由多个程序,同时使用的代码和数据的库。

起因

在查看hzero前端项目框架介绍时提到了dll,外加之前经常看见dll文件,于是有了兴趣了解一下 webpack dll。

webpack官网介绍

DLLPlugin和DLLReferencePlugin用某种方法实现了拆分 bundles,同时还大大提升了构建的速度.

模块预编译原理

webpack.dllPlugin本质是将大量复用模块且不会频繁更新的库进行预编译,且只需要编译一次,编译完成后产出指定文件(可以称为动态链接库)。在之后的构建过程中不会再对这些模块进行编译,而是直接使用DllReferencePlugin来引用动态链接库的代码,因此可以提高构建速度。一般可以将第三方模块进行预编译,如vue、vue-router、vuex等,只要这些依赖模块不更新,就不需要再重新编译。

vue-cli-plugin-dll

因为项目使用的vue-cli构建的,搜到了这么个专门的插件可以使用。为了实践效果。使用两个项目相同的项目来进行对比。

使用** vue create test **创建了个名称为test的项目,在此基础上增加了moment / lodash / bignumber / ElementUI / Viewer / mint / VueKinesis 库来体现效果。

yarn build : 9.37s

yarn serve : 2.08s

复制上面项目出来,重命名项目为test-dll开始实现dll配置。步骤如下:

执行命令 vue add dll 来安装 vue-cli-plugin-dll 插件。记 vue-cli-plugin-dll 使用,优化vue-cli项目构建打包速度

新建vue.config.js 文件来进行相关的配置。const path = require('path')module.exports = { pluginOptions: { dll: { // 入口配置 entry: ['vue','vuex','vue-router','vue-kinesis','v-viewer','moment','mint-ui','lodash','element-ui','core-js','bignumber'], // 输出目录 output: path.join(__dirname, './public/dll'), // 是否开启 DllReferencePlugin, open: true, // 在执行 `dev` , `build` 等其他指令时,程序会自动将 `dll` 指令生成的 `*.dll.js` 等文件自动注入到 index.html 中。 inject: true, } }}生成dll文件

需自行使用命令生成。

npm run dll // oryarn dll // ornpx vue-cli-service dll

配置完成,dll文件生成,此时已经将文件都集中到输出目录中。来看看效果吧!

yarn build: 4.17s

yarn serve: 0.5s

可以清楚的看到,无论是打包还是构建,速度快了很多。且构建出来的文件同样可以执行。我们再来对比下线上怎么请求资源的吧。

test项目:test-dll项目:

可以看见,主要区别在于 chunk-vendors.js 和 dll.508b73da.dll.js 。正常的项目 chunk包大小已经到了11M,打包过程和加载也是主要花时间在这。不过并没有dll包需要加载。相反,经过dll plugin处理后的项目,chunk包只有不到1M,dll包也只有1.6M,极大的缩减了打包和加载时间。同时在首页渲染时也是分离了代码,可以同步进行加载js文件。

当然,我这项目只有文件的引入,没有业务代码,对比才会这么震撼。但是同样可以看出dll可以实现项目的优化。

多入口配置

在这个的基础上,可以在对dll文件拆分进行优化。配置如下:

const path = require('path')module.exports = { pluginOptions: { dll: { // 入口配置 entry: { vue: ["vue", "vue-router", "vuex", 'vue-kinesis'], plugin: ["v-viewer",'moment','lodash','bignumber','core-js'], ui: ["mint-ui",'element-ui'], }, // 输出目录 output: { path: path.join(__dirname, 'public/dll'), filename: '[name].dll.js', // vendor.dll.js中暴露出的全局变量名 // 保持与 webpack.DllPlugin 中名称一致 library: '[name]_[hash]' }, // 是否开启 DllReferencePlugin, open: true, // 在执行 `dev` , `build` 等其他指令时,程序会自动将 `dll` 指令生成的 `*.dll.js` 等文件自动注入到 index.html 中。 inject: true, } }}

通过配置多个entry和对应对output来接收。执行 yarn dll 命令后,会生成多个dll.js文件。

yarn build:yarn serve:

看到打包速度又优化了些,而且可以做到dll.js文件拆分同时加载。在引入的文件多且臃肿的情况下,使用webpack dll进行性能优化是个很好的选择。

注意事项

每当生成过dll中存在依赖需进行升级或更新的时候,都要执行 生成dll文件 的命令来生成新的文件。

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

上一篇:经典帝国CMS生成sitemap实现代码分享(经典帝国cms生成器下载)

下一篇:python中pandas排序的两种形式(pandas columns排序)

  • 红米note11pro是5g手机吗

    红米note11pro是5g手机吗

  • 米哈游绑定手机解绑(米哈游绑定手机是别人的)

    米哈游绑定手机解绑(米哈游绑定手机是别人的)

  • 华为p40有智能遥控器功能吗(华为p40有智能遥控功能吗)

    华为p40有智能遥控器功能吗(华为p40有智能遥控功能吗)

  • 荣耀30pro拍照模糊(华为荣耀30pro拍照设置)

    荣耀30pro拍照模糊(华为荣耀30pro拍照设置)

  • ipsec协议处于那一层(ipsec协议工作在哪一层)

    ipsec协议处于那一层(ipsec协议工作在哪一层)

  • 苹果怎么关掉来电闪光灯(苹果怎么关掉来电声音变小)

    苹果怎么关掉来电闪光灯(苹果怎么关掉来电声音变小)

  • 苹果6s分屏功能怎么用(苹果6s手机分屏功能)

    苹果6s分屏功能怎么用(苹果6s手机分屏功能)

  • 苹果x充满电能用多久时间(苹果X充满电能用多久)

    苹果x充满电能用多久时间(苹果X充满电能用多久)

  • 华为手机屏幕上的小圆点怎么设置(华为手机屏幕上有个小房子图标)

    华为手机屏幕上的小圆点怎么设置(华为手机屏幕上有个小房子图标)

  • codemeter是什么软件(code1软件)

    codemeter是什么软件(code1软件)

  • 抖币可以转送好友吗(抖音抖币可以转送给好友吗)

    抖币可以转送好友吗(抖音抖币可以转送给好友吗)

  • 拼多多有事能暂停店铺吗(拼多多不能主动取消订单吗)

    拼多多有事能暂停店铺吗(拼多多不能主动取消订单吗)

  • 手机多媒体突然没有声音了是怎么回事(手机多媒体突然没声音了怎么办?)

    手机多媒体突然没有声音了是怎么回事(手机多媒体突然没声音了怎么办?)

  • 电脑登录腾讯会议如何截屏(电脑登录腾讯会议显示网络异常)

    电脑登录腾讯会议如何截屏(电脑登录腾讯会议显示网络异常)

  • 微信公众号菜单栏在哪(微信公众号菜单栏怎么设置)

    微信公众号菜单栏在哪(微信公众号菜单栏怎么设置)

  • 自动换行怎么设置(自动换行用哪个键)

    自动换行怎么设置(自动换行用哪个键)

  • ipad尺寸一览表(ipad尺寸是多少厘米)

    ipad尺寸一览表(ipad尺寸是多少厘米)

  • pppoe拨号是什么(pppoe拨号模式)

    pppoe拨号是什么(pppoe拨号模式)

  • word文档序号自动生成(word文档序号自动编号)

    word文档序号自动生成(word文档序号自动编号)

  • 手机qq怎么转发语音(手机qq怎么转发聊天记录)

    手机qq怎么转发语音(手机qq怎么转发聊天记录)

  • qq音乐桌面壁纸在哪(qq音乐桌面壁纸怎么打开)

    qq音乐桌面壁纸在哪(qq音乐桌面壁纸怎么打开)

  • 趣键盘表情发不出来(怎么用趣键盘输入表情包)

    趣键盘表情发不出来(怎么用趣键盘输入表情包)

  • 快闪是个什么意思(快闪是什么意思外卖)

    快闪是个什么意思(快闪是什么意思外卖)

  • 天猫津贴可以买手机吗(天猫购物津贴能在淘宝所有店铺使用吗?)

    天猫津贴可以买手机吗(天猫购物津贴能在淘宝所有店铺使用吗?)

  • 快币怎么提现到微信(快币怎么提现钱)

    快币怎么提现到微信(快币怎么提现钱)

  • gif过大无法发送微信(gif图片过大无法发送)

    gif过大无法发送微信(gif图片过大无法发送)

  • 抖音备忘录在哪里找(抖音的备忘录app是啥)

    抖音备忘录在哪里找(抖音的备忘录app是啥)

  • 黄石国家公园的美洲野牛,美国怀俄明州 (© Steve Gettle/Minden Pictures)(黄石国家公园的占地面积)

    黄石国家公园的美洲野牛,美国怀俄明州 (© Steve Gettle/Minden Pictures)(黄石国家公园的占地面积)

  • vue3 框架学习概念笔记(vue框架总结)

    vue3 框架学习概念笔记(vue框架总结)

  • 增值税核算办法
  • 百旺金税盘官网
  • 零售价是含税价还是不含税价
  • 研发费用可以计入哪个科目
  • 购进石料再加工算自产吗
  • 高新技术企业账务处理注意事项
  • 小企业无形资产有
  • 报销单和付款单的区别
  • 出口样品未报关怎么处理
  • 进项票超过180天还可以认证吗
  • 雇主责任险税前列支
  • 差额纳税怎么记账
  • 企业发生的运输费用怎么做账?
  • 新公司没有实收资本,他的钱从哪来
  • 减少其他应付款冲费用做以前年度损益调整如何做分录
  • 电子税务局怎么查看已开发票
  • 补提以前年度费用在年度报表中怎么填
  • 免征的税款每月几号申报
  • 纳税人可以是自然人吗
  • 4s店贷款服务费是什么
  • 公司购进的商品自己用的,税金怎么走账
  • 个体工商户怎样开发票
  • 如何恢复微信语言聊天
  • 销售净利率如何分析出来
  • 一般纳税人存货入账价值
  • 事业基金的主要账务处理
  • 无形资产的摊销怎么算
  • PHP:mb_eregi_replace()的用法_mbstring函数
  • 去年的发票忘记入账怎么处理
  • 新准则管理费用税金
  • 建筑企业如何确认所得税收入
  • 辅助生产成本如何结转
  • 财务指标有哪四类
  • 远程访问群晖nas
  • 一文教会你何为重绘、回流?
  • vue 快速上手
  • 床垫可以开专票抵扣吗
  • 注册资金到位时间填多少年最好
  • python 进程pid
  • mongodb 分组计数
  • 进口增值税是什么意思
  • 工会经费付款分录
  • 以前年度未结转
  • 保险车辆理赔入账流程
  • 公司注销前怎么平账需要提前多久
  • 投资折价会计处理
  • 对方开票少开几角会计分录
  • 其他业务收入借贷方向表示
  • 员工报销签字流程
  • 预付账款的相关认定
  • 预计销售收入增长率怎么算
  • 预计负债 负债 区别
  • 成本结转怎么结转
  • 购买需要安装的生产设备会计分录
  • 平台使用费属于什么服务
  • 赊销是什么意思 视频
  • sqlserver优化方案
  • sql 获取字段类型
  • solaris newfs
  • fedora使用
  • ubuntu中安装vim
  • win10提高
  • win10dll丢失
  • winxp/win7/win2003 电脑开机密码设置图文方法
  • excel 提示
  • win8电脑远程控制怎么弄
  • 2016年Win10 RS1预览版11095已送交合作伙伴
  • HTML5 WebStorage(HTML5本地存储技术)
  • jqueryvalidate验证
  • linux命令及含义
  • 详解JavaScript ES6中的Generator
  • java使用jni
  • [Unity3D]Unity3D游戏开发之塔防游戏项目讲解(上)
  • 使用jquery实现的项目
  • jquery 购物车
  • 企业所得税税率10%
  • 携程怎么订
  • 成本费用总额在报表哪里看
  • 内蒙古国地税联合办税服务厅
  • 什么是减税政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设