首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

webpack实战——打包优化【中】

动态链接库与DLLPlugin “动态链接库(Dynamic Link Library 或者 Dynamic-link Library,缩写为 DLL),是微软公司在微软Windows操作系统中,实现共享函数库概念的一种方式...今天要介绍的主角“DLLPlugin”则借鉴了动态链接库的思路,对于第三方模块或者一些不常变化的模块预先进行编译和打包,然后再项目实际构建过程中直接取用。...不过区别还是有的,DLLPlugin实际生成的文件是JS文件而不是动态链接库。在打包vendor的时候还会附加生成一份vendor的模块清单,这份清单将会在工程业务模块打包时起到链接和索引的作用。...这里推荐与DLLPlugin配套的插件“DLLReferencePlugin”,它起到索引和链接作用。...小结 本篇从动态链接库思想着手,介绍了DLLPlugin与其配套插件DLLReferencePlugin使用,将第三方库与一些不常改动的模块编译打包,处理为类似于动态链接库的JS文件,以此来节约服务器资源

84650
您找到你想要的搜索结果了吗?
是的
没有找到

前端性能优化——包体积压缩82%、打包速度提升65%

deleteOriginalAssets: false //压缩后保留原文件 }) ] } } 复制代码 验证插件的有效性: 重新打包,原来 407KB 的体积压缩为 108KB gZip.png 6、DllPlugin...动态链接库 DllPlugin 与 externals 的作用相似,都是将依赖抽离出去,节约打包时间。...区别是 DllPlugin 是将依赖单独打包,这样以后每次只构建业务代码,而 externals 是将依赖转化为 CDN 的方式引入 当公司没有很好的 CDN 资源或不支持 CDN 时,就可以考虑使用...DllPlugin ,替换掉 externals DllPlugin 配置流程大致分为三步: 1)创建 dll.config.js 配置文件 import { DllPlugin } from "webpack...全局变量名称:其他模块会从此变量上获取里面模块 path: AbsPath("dist/static") // 输出目录路径 }, plugins: [ new DllPlugin

1.6K30

优化Webpack构建性能的几点建议

path.resolve(__dirname, 'src/utilities/'), Templates: path.resolve(__dirname, 'src/templates/') } 六、使用 DllPlugin.../DllReferencePlugin 进行预先构建 ​Webpack 的 DllPlugin 和 DllReferencePlugin 是在新版本中推出的 Plugin,其思路就是把改变频率比较小的第三方库等依赖单独打包构建...在这个配置文件中,使用 webpack DllPlugin 生成 manifest.json 文件和 Dll 模块文件。也可以引入诸如 uglifyPlugin 对第三方依赖进行压缩等处理。...path.resolve(__dirname, 'build', 'dll'), library: '[name]' }, plugins: [ new webpack.DllPlugin...以下是一些关于 Webpack 构建性能的文章: 1):使用 DllPlugin 提升性能 2): PrefetchPlugin 的使用 3): webpack 打包分析与性能优化 4): webpack

69330

优化Webpack构建性能的几点建议

path.resolve(__dirname, 'src/utilities/'), Templates: path.resolve(__dirname, 'src/templates/') } 六、使用 DllPlugin.../DllReferencePlugin 进行预先构建 ​Webpack 的 DllPlugin 和 DllReferencePlugin 是在新版本中推出的 Plugin,其思路就是把改变频率比较小的第三方库等依赖单独打包构建...在这个配置文件中,使用 webpack DllPlugin 生成 manifest.json 文件和 Dll 模块文件。也可以引入诸如 uglifyPlugin 对第三方依赖进行压缩等处理。...path.resolve(__dirname, 'build', 'dll'), library: '[name]' }, plugins: [ new webpack.DllPlugin...以下是一些关于 Webpack 构建性能的文章: 1):使用 DllPlugin 提升性能 2): PrefetchPlugin 的使用 3): webpack 打包分析与性能优化 4): webpack

78570

性能优化篇---Webpack构建速度优化

将依赖的第三方模块抽离,打包到一个个单独的动态链接库中 当需要导入的模块存在动态链接库中时,让其直接从链接库中获取 项目依赖的所有动态链接库都需要被加载 接入工具(webpack已内置) DllPlugin...插件:用于打包出一个个单独的动态链接库文件; DllReferencePlugin:用于在主要的配置文件中引入DllPlugin插件打包好的动态链接库文件 配置webpack_dll.config.js...构建动态链接库 const path = require('path'); const DllPlugin = require('webpack/lib/DllPlugin'); module.exports.../dll/utils.manifest.json') }), ] 注意:在webpack_dll.config.js文件中,DllPlugin中的name参数必须和output.library...中的一致;因为DllPlugin的name参数影响输出的manifest.json的name;而webpack.pro.config.js中的DllReferencePlugin会读取manifest.json

2.1K31

webpack提升构建速度

DLLPluginDLLPlugin 是 webpack 官方提供的一个插件,也是用来分离代码的,和 optimization.splitChunks有异曲同工之妙,之所以把 DLLPlugin 放到...我们来看一下 DLLPlugin 如何使用,使用这个插件时需要额外的一个构建配置,用来打包公共的那一部分代码,举个例子,假设这个额外配置是 webpack.dll.config.js:module.exports...({ name: 'vendor_[hash]', path: path.resolve(__dirname, "dist/manifest.json"), // 使用 DLLPlugin...src="vendor.js">作用是不是和 optimization.splitChunks 很相似,但是有个区别,DLLPlugin...但是很显然,DLLPlugin 的配置要麻烦得多,并且需要关心你公共部分代码的变化,当你升级 lodash(即你的公共部分代码的内容变更)时,要重新去执行 webpack.dll.config.js 这一部分的构建

411180
领券