详解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 】
相关推荐:
Android利用动画实现背景逐渐变暗
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
Laravel安装步骤详细教程_Laravel环境搭建指南
文字头像制作网站推荐软件,醒图能自动配文字吗?
如何快速搭建高效可靠的建站解决方案?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
企业网站制作这些问题要关注
如何在IIS中新建站点并配置端口与IP地址?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
Laravel怎么上传文件_Laravel图片上传及存储配置
如何在建站之星网店版论坛获取技术支持?
网易LOFTER官网链接 老福特网页版登录地址
Swift中swift中的switch 语句
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
如何在搬瓦工VPS快速搭建网站?
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
如何快速查询网址的建站时间与历史轨迹?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
Windows Hello人脸识别突然无法使用
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
如何用好域名打造高点击率的自主建站?
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
PHP正则匹配日期和时间(时间戳转换)的实例代码
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
Laravel如何处理表单验证?(Requests代码示例)
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
Laravel怎么连接多个数据库_Laravel多数据库连接配置
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
Laravel如何配置和使用缓存?(Redis代码示例)
如何在万网自助建站平台快速创建网站?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
googleplay官方入口在哪里_Google Play官方商店快速入口指南
Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程
iOS验证手机号的正则表达式
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
Laravel如何实现API版本控制_Laravel版本化API设计方案
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
如何用腾讯建站主机快速创建免费网站?
高防服务器租用如何选择配置与防御等级?
详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
Laravel如何实现本地化和多语言支持?(i18n教程)
微信推文制作网站有哪些,怎么做微信推文,急?

