详解Webpack DLL用法以及功能
发布时间 - 2026-01-11 02:17:34 点击率:次在使用webpack过程中,本人也发现发现构建速度非常慢,Webpack性能优化的方式有很多种,本文介绍了dll,dll是一种最简单粗暴并且极其有效的优化方式。

前言
在用 Webpack 打包的时候,对于一些不经常更新的第三方库,比如 react,lodash,我们希望能和自己的代码分离开,Webpack 社区有两种方案
- CommonsChunkPlugin
- DLLPlugin
对于 CommonsChunkPlugin,webpack 每次打包实际还是需要去处理这些第三方库,只是打包完之后,能把第三方库和我们自己的代码分开。而DLLPlugin 则是能把第三方代码完全分离开,即每次只打包项目自身的代码。
用法
要使用 DLLPlugin,需要额外新建一个配置文件。所以对于用这种方式打包的项目,一般会有下面两个配置文件
- webpack.config.js
- webpack.dll.config.js
先来看下 webpack.dll.config.js
const webpack = require('webpack')
const library = '[name]_lib'
const path = require('path')
module.exports = {
entry: {
vendors: ['react', 'lodash']
},
output: {
filename: '[name].dll.js',
path: 'dist/',
library
},
plugins: [
new webpack.DllPlugin({
path: path.join(__dirname, 'dist/[name]-manifest.json'),
// This must match the output.library option above
name: library
}),
],
}
再改下 webpack.config.js 文件
const webpack = require('webpack')
module.exports = {
entry: {
app: './src/index'
},
output: {
filename: 'app.bundle.js',
path: 'dist/',
},
plugins: [
new webpack.DllReferencePlugin({
context: __dirname,
manifest: require('./dist/vendors-manifest.json')
})
]
}
manifest: require('./dist/vendors-manifest.json') 这里的路径要和 webpack.dll.config.js 里面的对应。
然后运行
$ webpack --config webpack.dll.config.js $ webpack --config webpack.config.js
然后你的 html 文件像下面这样引用
<script src="/dist/vendors.dll.js"></script> <script src="/dist/app.bundle.js"></script>
DLL Link Plugin
上面的用法也存在一些不方便的地方,比如在 webpack.config.js 中要明确指出对应的 manifest.json 文件。还有当 DLL 需要更新的时候,比如 react 升级了,或者加入新的第三方库,都需要手动像下面这样编译一次。
$ webpack --config webpack.dll.config.js
因为上面这些问题,所以基于官方的 DllReferencePlugin,我写了一个打包的插件,Dll Link Plugin。
使用这个插件,只需要对 webpack.config.js 作下小小的改动
const webpack = require('webpack')
const DllLinkPlugin = require('dll-link-webpack-plugin')
module.exports = {
// ...
plugins: [
new DllLinkPlugin({
config: require('webpack.dll.config.js')
})
]
}
直接替换掉 DllReferencePlugin,然后传入对应的 DLL 配置文件就可以了。每次打包的时候,只需要运行
$ webpack --config webpack.config.js
上面的命令便会自动生成对应的 vendors 文件,需要更新的时候,也会自动更新。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Webpack
# DLL
# DLL用法
# 详解webpack性能优化——DLL
# Webpack性能优化 DLL 用法详解
# Webpack的dll功能使用
# 第三方
# 自己的
# 配置文件
# 能把
# 是一种
# 会有
# 也会
# 则是
# 只需
# 希望能
# 写了
# 只需要
# 要对
# 便会
# 有两种
# 最简单
# 如在
# 要使
# 使用这个
# 中要
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
高防服务器租用指南:配置选择与快速部署攻略
北京网站制作公司哪家好一点,北京租房网站有哪些?
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
如何快速搭建虚拟主机网站?新手必看指南
如何快速建站并高效导出源代码?
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
智能起名网站制作软件有哪些,制作logo的软件?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
网站优化排名时,需要考虑哪些问题呢?
Android利用动画实现背景逐渐变暗
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
QQ浏览器网页版登录入口 个人中心在线进入
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
黑客如何通过漏洞一步步攻陷网站服务器?
三星、SK海力士获美批准:可向中国出口芯片制造设备
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
微信小程序 canvas开发实例及注意事项
如何在 Pandas 中基于一列条件计算另一列的分组均值
如何在万网主机上快速搭建网站?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
JavaScript中的标签模板是什么_它如何扩展字符串功能
如何在万网ECS上快速搭建专属网站?
如何用AI帮你把自己的生活经历写成一个有趣的故事?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
常州企业网站制作公司,全国继续教育网怎么登录?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
Laravel如何生成URL和重定向?(路由助手函数)
如何在建站宝盒中设置产品搜索功能?
浅析上传头像示例及其注意事项
公司门户网站制作流程,华为官网怎么做?
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
如何用低价快速搭建高质量网站?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
Python结构化数据采集_字段抽取解析【教程】
jQuery validate插件功能与用法详解
个人摄影网站制作流程,摄影爱好者都去什么网站?
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
如何快速生成可下载的建站源码工具?
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
如何快速生成专业多端适配建站电话?
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
js实现点击每个li节点,都弹出其文本值及修改
bing浏览器学术搜索入口_bing学术文献检索地址
东莞市网站制作公司有哪些,东莞找工作用什么网站好?

