前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >webpack DLL 动态链接库

webpack DLL 动态链接库

作者头像
Ewall
发布于 2020-12-01 02:27:08
发布于 2020-12-01 02:27:08
2.4K00
代码可运行
举报
文章被收录于专栏:vue学习vue学习
运行总次数:0
代码可运行

项目地址:https://github.com/Ewall1106/webpack-demo

是什么?

许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即 DLL 文件,放置于系统中。当我们执行某一个程序时,相应的 DLL 文件就会被调用。一个应用程序可使用多个 DLL 文件,一个 DLL 文件也可能被不同的应用程序使用,这样的 DLL 文件被称为共享 DLL 文件。— 百度百科

  • 翻译一下,在 webpack 中的动态链接库就是:由于每次更改了内容 webpack 都会自动重新编译打包,如果我们把用到的如 reactjquery 这些外部库抽离出去,改变文件的时候不让 webpack 重新打包这部分文件,直接引用,那么重新编译打包的速度就会快很多,这样我们开发的效率也会提升。
  • 再翻译一下,所谓动态链接库就是帮你提升开发效率的,使 webpack 在重编译的时候能打包更快。
  • webpack 中实现 DLL 主要依赖两个插件 webpack.DllReferencePluginwebpack.DllPlugin,先记好这两个即可。

安装

  • 还是从头开始,先新建一个文件初始化一下打包的基本配置。
  • 我们以 react 这个库为例,假设我们要把 react 做为动态链接库,让其不需要每次重新编译。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 初始化
$ npm init -y
# 安装一些基础的包
$ sudo npm i webpack webpack-cli react react-dom html-webpack-plugin webpack-dev-server clean-webpack-plugin babel-loader @babel/core @babel/preset-env @babel/preset-react --save-dev
  • 接下来就是一些基本的 webpack.config.js 配置了,这些前面文章都已经就逐步详细介绍了,这里就一笔带过了,本篇文章只重点说明 DLL 怎么配置的。
  • 然后我们在入口文件中随便写几行代码,跑起来后我们就可以看到 hello world 跃然于页面上了。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from 'react';
import ReactDOM from 'react-dom';

ReactDOM.render(<div>hello world</div>, document.getElementById('app'));

打包 React

  • 我们要把 react 做为动态链接库,所以我们单独为其新建一个打包配置文件 - webpack.react.js
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const path = require('path');
const webpack = require('webpack');

module.exports = {
  mode: 'development',

  entry: {
    react: ['react', 'react-dom'],
  },

  output: {
    filename: '_dll_[name].js',
    path: path.resolve(__dirname, './dist'),
    library: '_dll_[name]',
    libraryTarget: 'umd',
  },

  plugins: [
    new webpack.DllPlugin({
      name: '_dll_[name]',
      path: path.resolve(__dirname, 'dist', 'manifest.json'),
    }),
  ],
};
  • 上面的配置重点是 plugins 插件中配合的 webpack.DllPlugin 这个插件,它会生成一个名为 manifest.json 的文件,你可以理解为就是一张表,我们可以定义依赖,也就是说待会我们用到了 react 的时候,告诉 webpack 就直接在这个文件里找,别重复打包编译 react 了。
  • 打包一下,我们就可以看到 dist 文件夹中出现了打包后的 react 文件和 manifest.json 依赖表了。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ npx webpack --config webpack.react.js
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/dist
+ _dll_react.js
+ manifest.json

设置依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module.exports = {
  // ...
  // ...
  plugins: [
    // 当使用react的使用,先去这个表里面找
    new webpack.DllReferencePlugin({
      manifest: path.resolve(__dirname, 'dist', 'manifest.json'),
    }),
  ],
};
  • 这个就是告诉 webpack,当我们页面中引入使用了 react 这个库的时候,直接去 manifest.json 里去找,然后引用打包好的 _dll_react.js 就行了。

小结

  • 对比这两种方式,基本快了了 10ms 左右,如果你的项目很大,将一些 react、vue、jquery 这些库都进行 DLL 配置后,那么开发效率提高还是可观的。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./src/index.js 172 bytes [built][code generated]
webpack 5.4.0 compiled successfully in 56 ms

// 使用DLL配置react库后:

./src/index.js 172 bytes [built][code generated]
webpack 5.4.0 compiled successfully in 41 ms
  • DLL 这个名称很吓人,但是其实配置起来并不难,主要就是利用了 webpack 自己实现的两个插件,就简单的说到这里。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
腾讯云CBS云硬盘使用上的几个小技巧
不关机扩容 通过云API V3或者云硬盘控制台是可以实现对已挂载的弹性数据盘云盘进行扩容操作的,并且不需要重启云服务器即可生效。但是实际使用时,对云盘的使用方式是有限制的,具体如下: windows子机需要在 服务器管理器 - 磁盘管理 中重新扫描磁盘后才可以看到新增的磁盘大小;扫描后,点击 扩展卷 调整磁盘大小; 在扩展卷时,会导致磁盘io阻塞,约十几秒 linux子机 在没有使用分区的情况下,可以直接通过resize2fs扩容;如果使用了mbr或gpt分区,则需要先umount分区,然后执行扩容分区和文
barrettwu
2018/09/05
3.5K0
百微秒时延,腾讯云云硬盘CBS架构深度解密
导语 | 随着云计算的逐步普及,越来越多用户在云上部署其核心业务。大型数据库、高性能 NoSQL、日志检索、DevOps 等 IO 密集型场景对云上存储提出了更高的要求。本文是对腾讯云存储专家工程师王银虎在云+社区online的分享整理,介绍腾讯云云硬盘 CBS 团队在高性能实践方面所做的软硬件技术革新和演进,希望与大家一同交流。
腾讯云开发者
2020/09/21
6.6K0
裸金属服务器,云用户的新体验
裸金属服务器(Bare Metal Server),是一台既具有传统物理服务器特点的硬件设备,又具备云计算技术的虚拟化服务功能,是硬件和软件优势结合的产物。可以为企业提供专属的云上物理服务器,为核心数据库、关键应用系统、高性能计算、大数据等业务提供卓越的计算性能以及数据安全。使得云服务用户可灵活申请,按需使用。相当于已经纳入“服务化“的“物理服务器”,但不等同于开了远程管理的物理服务器。
德迅云安全--陈琦琦
2024/05/05
5700
单个云主机最多挂几块云硬盘,一个云主机放多少个网站
有很多小伙伴咨询小编,单个云主机最多挂几块云硬盘?因为这个问题,自己百思不得其解,很烦恼。除了这个问题,一个云主机放多少个网站也是很好奇的。那么我们一起来看看单个云主机最多挂几块云硬盘以及网站这个话题吧。
用户8715145
2022/03/10
6.1K0
如何做好运维 & On-call 机制规范?
作者:高铭谦,腾讯云高级工程师 背景 对于云计算服务而言,后台工程师不但需要负责开发的部分,同时还需要负责运维的部分,所以 Oncall 机制对于云计算的工程师而言并不陌生。 Site Reliablity Enineer (SRE)是 Google 提出的一个岗位,SRE 的团队里包含有硬件工程师,软件工程师和系统工程师,他们的职责与传统的 DevOps 工程师,他们不但需要承担 DevOps 的责任和工作,而且需要通过工程能力主动去运维,让运维自动化。AWS Oncall 机制是云计算行业里的标杆,对
腾讯云可观测平台
2021/04/02
3.8K0
云主机硬盘IO性能深度Jtti解析与优化策略
云主机硬盘的IO(输入输出)性能是影响应用程序响应速度、数据库处理效率及用户体验的核心指标之一。其表现受存储类型、服务商架构设计、网络环境等多重因素影响。本文将从性能基准、技术原理、测试方法及优化策略等维度,全面解析云主机硬盘的IO性能特性。
jtti
2025/05/14
1170
基于容器和微服务加快迭代速度实践
摘要 坊间一直有“网易出品,必属精品”的言论流传,网易云音乐、考拉海购、有道云笔记、网易云课堂等都是深受大家喜爱的应用,而这些应用的背后,都少不了网易蜂巢的支撑。目前网易95%以上的应用都已经部署在了
IT大咖说
2018/04/03
1.1K0
基于容器和微服务加快迭代速度实践
腾讯云服务器配置不用愁 只需这几步
腾讯云开发者社区
2017/05/03
34.2K7
腾讯云服务器配置_Windows系统部署IIS只需几步完成!
作为云计算服务的重要组成部分,云服务器以其简单高效、安全可靠、弹性扩展的特性成为核心力量,构建了包括计算、网络、存储在内的综合服务平台。以腾讯云服务器为例,CVM不仅提供了镜像复制、快照备份等功能,还可以按实际使用计算费用。借此,用户可以在数分钟内获取并配置腾讯云服务器计算实例。值得一提的是,腾讯云服务器对于前沿的高性能计算也有较好的支持。今年初,腾讯云推出了高性能异构计算基础设施——FPGA云服务。
用户2416682
2019/09/23
9.7K0
腾讯云服务器配置_Windows系统部署IIS只需几步完成!
网易OpenStack部署运维实战
糖豆贴心提醒,本文阅读时间8分钟 OpenStack简介 OpenStack 是一个开源的 IaaS 实现,它由一些相互关联的子项目组成,主要包括计算、存储、网络。 由于以 Apache 协议发布,自 2010 年项目成立以来,超过 200 个公司加入了 OpenStack 项目,其中包括 AT&T、AMD、Cisco、Dell、IBM、Intel、Red Hat 等。 目前参与 OpenStack 项目的开发人员有 17,000+,来自 139 个国家,这一数字还在不断增长中。 OpenStack
小小科
2018/05/02
2.2K0
网易OpenStack部署运维实战
揭秘Kafka的硬盘设计方案,快速完成PB级数据扩容需求!
导语:疫情期间,腾讯医疗为全国人民提供了及时精准的疫情信息服务。腾讯云kafka作为腾讯医疗大数据架构中的关键组件。在面对业务短时间内成倍的数据存储需求的情况下,如何快速响应、快速扩容以支持业务的稳定运行的呢 本文将从Kafka集群底层物理机层面硬盘的设计方案,来讲解面对不同的业务需求场景,如何选择好合适的磁盘方案。(编辑:中间件小Q妹)
腾讯云中间件团队
2021/03/24
1.2K0
揭秘Kafka的硬盘设计方案,快速完成PB级数据扩容需求!
腾讯,又出来一个良心产品!
在未来的技术趋势一定是,朝着 Serverless 架构转向,先送给大家一份《腾讯云工具指南》。
纯洁的微笑
2023/08/08
3180
腾讯,又出来一个良心产品!
云主机可挂几个云硬盘?云主机就是云服务器吗?
现在IT行业已经为社会做出了很大的价值,特别是疫情突袭的当下,一个APP软件可以把所有人的形成记录下来,并且通过大数据把去过疫区的人分辨出来,并及时进行隔离,可见计算机和互联网结合起来是多么的强大。在作用计算机时不得不需要很大的容量,计算机的容量毕竟是有限的,但是云主机的容量确实具备很强弹性的,它的内存可以扩大,很多人不明白云主机可挂几个云硬盘?
用户8715145
2022/03/25
48.5K0
秒启万台主机,腾讯云云硬盘数据调度架构演进
​导语 | CBS云硬盘为腾讯云客户提供了⾼可靠、⾼可⽤和低成本的统⼀块存储服务。CBS针对数据安全、云服务器⽣产、资源均衡、云盘介质升级等场景下的数据调度能⼒需求,抽象出统⼀数据调度平台。本文是对腾讯云存储专家工程师——杨光超在云+社区online的分享整理,希望与大家一同交流。
腾讯云开发者
2020/10/19
2.9K0
腾讯云服务器配置不用愁 只需这几步
作为云计算服务的重要组成部分,云服务器以其简单高效、安全可靠、弹性扩展的特性成为核心力量,构建了包括计算、网络、存储在内的综合服务平台。以腾讯云服务器为例,CVM不仅提供了镜像复制、快照备份等功能,还可以按实际使用计算费用。借此,用户可以在数分钟内获取并配置腾讯云服务器计算实例。值得一提的是,腾讯云服务器对于前沿的高性能计算也有较好的支持。今年初,腾讯云推出了高性能异构计算基础设施----FPGA云服务。
用户5907249
2019/07/31
3.7K0
腾讯云服务器配置不用愁 只需这几步
腾讯云 CVM 产品详细信息
腾讯云 CVM 提供了在云中的可扩展的虚拟计算资源,允许您选择多种操作系统来启动 CVM 实例,并加载到您自定义的应用环境。后续随着业务量的变化,您还可以随时调整您的 CVM 规格。
勤劳的小蜜蜂
2019/08/12
3.2K0
主机迁移实践分享
在云计算时代,不管是从IDC上云还是多云直接的迁移,都已经是常见的事宜。而在上云/迁移的方案中,也是有多种的方式能够将主机迁移到腾讯云中。
腾讯云计算产品团队
2018/07/14
17.2K1
给长通物流业务系统做的基于腾讯云的上云解决方案
长通物流是一家基于供应链管理集运输、仓储、物流配送、产品代理一体化的全方位综合物流服务商。随着社会的发展,行业环境的改变,为满足用户的需求不断创新,现在先研发第三代物流管理系统,预期8月部署上线,新系统的部署采用云服务的方式,满足新业务的安全需求、访问需求等。
中云微迅
2019/10/22
1.8K0
给长通物流业务系统做的基于腾讯云的上云解决方案
腾讯云-云服务器概述&售前
云服务器(Cloud Virtual Machine , CVM)提供安全可靠的弹性计算服务,只需要几分钟,可以在云端获取和启动CVM实现你的计算需求,随着业务的需求变化, 你可以实时扩展或者缩减计算资源,CVM 支持按实际使用的资源计费,可以节约计算成本,使用CVM 可以极大降低软硬件的采购成本,简化IT运维工作。
Chris Fei
2021/05/03
42.7K0
云计算架构设计6大原则,你遵循了吗?
2006年,第一个云计算(Cloud Computing)产品诞生,云计算的概念也被提出,现在云计算几乎已经渗入所有的行业和应用场景中。我们不一定能直接感受到云计算对日常生活、工作、学习的影响,但作为IT基础设施,它却悄然支撑着我们正在使用的各个应用。
肉眼品世界
2022/04/19
8580
云计算架构设计6大原则,你遵循了吗?
推荐阅读
相关推荐
腾讯云CBS云硬盘使用上的几个小技巧
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验