解决webpack打包速度慢的解决办法汇总


Posted in Javascript onJuly 06, 2017

刚开始用webpack,谈一谈解决webpack打包慢的问题的方法

技巧1

webpack在打包的时候第一次总是会做很长的准备工作,包括加载插件之类的。在刚接触webpack的时候总是webpack一下-测一下-改一下-再webpack一下,这种方式最后让很多人崩溃了觉得webpack一点都不好用。其实这是错误的使用方式。

正确的方式应直接执行webpack --watch 这样webpack会自动编译,第一回的时候确实很慢,但之后的自动编译就要快了好多,打包时间相差几倍。

技巧2

webpack配合的React,jQuery一些共有的库去使用,虽然没写几行代码却发现我靠打个文件居然好几M了。能不能不让这些共有库打入我们的文件呢?

externals: 
    {
      'antd':true,
      'react': 'React',
      'react-dom': 'ReactDOM'
    }

在webpack配置文件的根上加上这些内容。告诉webpack在require(“react”)的时候不要去加载模块,直接去读(这里还不是很明白,有的说“:”后面是window.React,写了后面可以直接使用无需require,待确定后再补充,一般写true就可以了),当然这种方式要在html入口手动引入js文件:

<script src="node_modules/react/dist/react-with-addons.js"></script>
<script src="node_modules/react-dom/dist/react-dom.min.js"></script>
<script src="node_modules/antd/dist/antd.min.js"></script>

在项目中正常使用require(“react”)试试,不会被打进去了,文件变为了几k,突然感觉webpack这东西还是能用的。

技巧3

大部分情况下通过技巧2已经可以搞定大部分问题了,但是在用MaterialUI的时候,点击事件总是报一个错误,大概意思是重复的引入了react什么的。如果出现这个问题,那么请使用技巧3。将那些共有的模块打进另外一个文件中,然后使用CommonsChunkPlugin插件,在webpack ?watch非第一编打包的时候就不会重复的打另外一个文件了。

entry: {
    //这是我自己文件的入口,换成自己的
    main: './apps/main.jsx',
    //这个是把外面的东西打包成common.js
    'common':['./node_modules/react/dist/react-with-addons.min.js','./node_modules/react-dom/dist/react-dom.min.js']

  },
plugins: [
    //把common.js变为共有的,除第一遍打包后就不会再打包了
    new webpack.optimize.CommonsChunkPlugin('common', 'common.js')
  ]
output: {
    path: path.resolve(containerPath,'dist/'),
    filename: '[name].js'
  }

在webpack配置文件的根上加上这些内容,在html入口处需要引入common.js

//确认一下是不是第一回打包后这个文件已经有了
<script src="dist/common.js"></script>

这种方式在webpack -watch后第一遍依旧很慢(因为要打common) 之后修改默认打包是就不会再打common了。而且还有一个优点就是不用再引React,jquery一堆文件了,只引common一个文件就ok。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js调试工具 Javascript Debug Toolkit 2.0.0版本发布
Dec 02 Javascript
jquery checkbox全选、取消全选实现代码
Mar 05 Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
Feb 23 Javascript
日常收藏的jquery技巧
Dec 02 Javascript
详解Vue 多级组件透传新方法provide/inject
May 09 Javascript
Webpack devServer中的 proxy 实现跨域的解决
Jun 15 Javascript
vee-validate vue 2.0自定义表单验证的实例
Aug 28 Javascript
Vue2实时监听表单变化的示例讲解
Aug 30 Javascript
Three.js中矩阵和向量的使用教程
Mar 19 Javascript
详解webpack4.x之搭建前端开发环境
Mar 28 Javascript
简述ES6新增关键字let与var的区别
Aug 23 Javascript
微信小程序实现上拉加载功能
Nov 20 Javascript
详解微信小程序Radio选中样式切换
Jul 06 #Javascript
Node.js 回调函数实例详解
Jul 06 #Javascript
详解vue渲染从后台获取的json数据
Jul 06 #Javascript
微信小程序 Buffer缓冲区的详解
Jul 06 #Javascript
VUE axios发送跨域请求需要注意的问题
Jul 06 #Javascript
vue-cli如何添加less 以及sass
Jul 06 #Javascript
微信小程序 跳转传递数据的实例
Jul 06 #Javascript
You might like
php class类的用法详细总结
2013/10/17 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
2017/08/15 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
2018/09/07 PHP
PHP设计模式(四)原型模式Prototype实例详解【创建型】
2020/05/02 PHP
js电信网通双线自动选择技巧
2008/11/18 Javascript
JS实现点击文字对应DIV层不停闪动效果的方法
2015/03/02 Javascript
浅谈javascript中基本包装类型
2015/06/03 Javascript
javascript数据结构之双链表插入排序实例详解
2015/11/25 Javascript
关于Bootstrap弹出框无法调用问题的解决办法
2016/03/10 Javascript
JavaScript定义数组的三种方法(new Array(),new Array('x','y')
2016/10/04 Javascript
详解MVC如何使用开源分页插件(shenniu.pager.js)
2016/12/16 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
Vue组件之Tooltip的示例代码
2017/10/18 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
浅析vue中常见循环遍历指令的使用 v-for
2018/04/18 Javascript
对layui中表单元素的使用详解
2018/08/15 Javascript
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
2018/05/29 Python
从请求到响应过程中django都做了哪些处理
2018/08/01 Python
python3.4控制用户输入与输出的方法
2018/10/17 Python
解决python xlrd无法读取excel文件的问题
2018/12/25 Python
OpenCV-Python 摄像头实时检测人脸代码实例
2019/04/30 Python
itchat-python搭建微信机器人(附示例)
2019/06/11 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
TensorFlow实现打印每一层的输出
2020/01/21 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
2020/04/08 Python
jupyter notebook参数化运行python方式
2020/04/10 Python
HTML5实现WebSocket协议原理浅析
2014/07/07 HTML / CSS
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
德国户外商店:eXXpozed
2020/07/25 全球购物
物业管理计划书
2014/01/10 职场文书
党校个人自我鉴定范文
2014/03/28 职场文书
化学专业自荐信
2014/05/28 职场文书
IIS服务器中设置HTTP重定向访问HTTPS
2022/04/29 Servers