webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程


Posted in Javascript onJune 10, 2019

DLLPlugin 和 DLLReferencePlugin的使用

DLLPlugin 和 DLLReferencePlugin 用某种方法实现了拆分 bundles,同时还大大提升了构建的速度。

1.首先build文件夹添加----webpack.dll.config.js:

var path = require("path");
var webpack = require("webpack");
module.exports = {
 // 要打包的模块的数组
 entry: {
  vendor: ['vue/dist/vue.esm.js','vue-router']
 },
 output: {
  path: path.join(__dirname, '../static/js'), // 打包后文件输出的位置
  filename: '[name].dll.js',// vendor.dll.js中暴露出的全局变量名。
  library: '[name]_library' // 与webpack.DllPlugin中的`name: '[name]_library',`保持一致。
 },
 plugins: [
  new webpack.DllPlugin({
   path: path.join(__dirname, '.', '[name]-manifest.json'),
   name: '[name]_library', 
   context: __dirname
  }),
 ]
};

2.在package.json的scripts里加上:

"dll": "webpack --config build/webpack.dll.config.js",

3.运行npm run dll 在static/js下生成vendor-manifest.json;

 4.在build/webpack.base.conf.js里加上:

// 添加DllReferencePlugin插件
 plugins: [
  new webpack.DllReferencePlugin({
   context: __dirname,
   manifest: require('./vendor-manifest.json')
  })
 ],

5.然后在index.html中引入vendor.dll.js:

<div id="app"></div>
<script src="./static/js/vendor.dll.js"></script>

至此,配置之后的:

 可以看到npm run build后的时间大幅度减少,在dist打包体积上也比之前的小。在项目优化中,可以很大程度上加快项目的构建速度和减少项目的打包体积。

总结

以上所述是小编给大家介绍的webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
判断window.onload是否多次使用的方法
Sep 21 Javascript
javascript实现表格排序 编辑 拖拽 缩放
Jan 02 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
Dec 02 Javascript
用原生js做单页应用
Jan 17 Javascript
js清除浏览器缓存的几种方法
Mar 15 Javascript
vue.js指令和组件详细介绍及实例
Apr 06 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
Jul 18 Javascript
Vue.js devtool插件安装后无法使用的解决办法
Nov 27 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
Dec 28 Javascript
JS中的算法与数据结构之列表(List)实例详解
Aug 16 Javascript
javascript实现抢购倒计时程序
Aug 26 Javascript
React组件设计模式之组合组件应用实例分析
Apr 29 Javascript
vue2 中二级路由高亮问题及配置方法
Jun 10 #Javascript
JS中实现一个下载进度条及播放进度条的代码
Jun 10 #Javascript
vuex 中插件的编写案例解析
Jun 10 #Javascript
使用webpack搭建vue项目及注意事项
Jun 10 #Javascript
详解iview的checkbox多选框全选时校验问题
Jun 10 #Javascript
前端路由&amp;webpack基础配置详解
Jun 10 #Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
Jun 10 #Javascript
You might like
php5.2时间相差8小时
2007/01/15 PHP
PHP获取数组的键与值方法小结
2015/06/13 PHP
php打乱数组二维数组多维数组的简单实例
2016/06/17 PHP
HTML页面如何象ASP一样接受参数
2007/02/07 Javascript
JQuery与Ajax常用代码实现对比
2009/10/03 Javascript
javascript function调用时的参数检测常用办法
2010/02/26 Javascript
简单的前端js+ajax 购物车框架(入门篇)
2011/10/29 Javascript
JavaScript使用replace函数替换字符串的方法
2015/04/06 Javascript
JavaScript访问字符串中单个字符的两种方法
2015/07/03 Javascript
JS日期格式化之javascript Date format
2015/10/01 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
2016/08/15 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
2017/02/19 Javascript
微信小程序getPhoneNumber获取用户手机号
2017/09/29 Javascript
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
Vue利用History记录上一页面的数据方法实例
2018/11/02 Javascript
vue2中引用及使用 better-scroll的方法详解
2018/11/15 Javascript
在Create React App中启用Sass和Less的方法示例
2019/01/16 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
2019/06/22 Javascript
Vue绑定用户接口实现代码示例
2020/11/04 Javascript
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python 算法 排序实现快速排序
2012/06/05 Python
python改变日志(logging)存放位置的示例
2014/03/27 Python
初步介绍Python中的pydoc模块和distutils模块
2015/04/13 Python
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
2017/07/22 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
python实现狄克斯特拉算法
2019/01/17 Python
Python简易版停车管理系统
2019/08/12 Python
python的sys.path模块路径添加方式
2020/03/09 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
亚洲独特体验旅游专家:eOasia
2018/08/15 全球购物
小学生学习感言
2014/03/10 职场文书
《音乐之都维也纳》教学反思
2014/04/16 职场文书
对领导班子的意见和建议
2015/06/08 职场文书
高中历史教学反思
2016/02/19 职场文书