Webpack性能优化 DLL 用法详解
发布时间 - 2026-01-11 02:44:10 点击率:次前言

在用 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
# 用法
# 详解vue-cli + webpack 多页面实例配置优化方法
# vue webpack打包优化操作技巧
# webpack4.0打包优化策略整理小结
# 详解基于vue-cli优化的webpack配置
# 详解vue-cli之webpack3构建全面提速优化
# webpack学习笔记之优化缓存、合并、懒加载
# vue-cli webpack2项目打包优化分享
# 浅谈Webpack打包优化技巧
# 详解webpack 热更新优化
# webpack优化的深入理解
# 第三方
# 自己的
# 配置文件
# 能把
# 会有
# 也会
# 则是
# 只需
# 希望能
# 写了
# 只需要
# 要对
# 便会
# 有两种
# 如在
# 要使
# 使用这个
# 中要
# 自动生成
# 大家多多
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
Laravel如何实现文件上传和存储?(本地与S3配置)
Laravel如何实现用户密码重置功能?(完整流程代码)
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
如何用美橙互联一键搭建多站合一网站?
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
详解jQuery中基本的动画方法
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
Laravel API资源类怎么用_Laravel API Resource数据转换
微信小程序 配置文件详细介绍
Laravel如何实现事件和监听器?(Event & Listener实战)
高性能网站服务器部署指南:稳定运行与安全配置优化方案
如何在搬瓦工VPS快速搭建网站?
Python图片处理进阶教程_Pillow滤镜与图像增强
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
如何登录建站主机?访问步骤全解析
如何在腾讯云免费申请建站?
大连 网站制作,大连天途有线官网?
文字头像制作网站推荐软件,醒图能自动配文字吗?
网站建设要注意的标准 促进网站用户好感度!
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
如何用好域名打造高点击率的自主建站?
java ZXing生成二维码及条码实例分享
Laravel中的Facade(门面)到底是什么原理
JS经典正则表达式笔试题汇总
如何在七牛云存储上搭建网站并设置自定义域名?
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
nginx修改上传文件大小限制的方法
Laravel如何配置和使用缓存?(Redis代码示例)
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
phpredis提高消息队列的实时性方法(推荐)
Python文件异常处理策略_健壮性说明【指导】
如何在 React 中条件性地遍历数组并渲染元素
EditPlus中的正则表达式实战(6)
如何快速查询网站的真实建站时间?
Laravel Fortify是什么,和Jetstream有什么关系
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
如何基于云服务器快速搭建网站及云盘系统?
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
香港服务器部署网站为何提示未备案?
大连网站制作公司哪家好一点,大连买房网站哪个好?
Android滚轮选择时间控件使用详解
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】

