解决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 相关文章推荐
Javascript实例教程(19) 使用HoTMetal(7)
Dec 23 Javascript
JavaScript 学习笔记(七)字符串的连接
Dec 31 Javascript
文本框获得焦点和失去焦点的判断代码
Mar 18 Javascript
javascript 三种方法实现获得和设置以及移除元素属性
Mar 20 Javascript
JavaScript初学者建议:不要去管浏览器兼容
Feb 04 Javascript
动态创建script标签实现跨域资源访问的方法介绍
Feb 28 Javascript
jQuery中append()方法用法实例
Jan 08 Javascript
解决vue页面刷新或者后退参数丢失的问题
Mar 13 Javascript
LayUI表格批量删除方法
Aug 15 Javascript
vue路由守卫+登录态管理实例分析
May 21 Javascript
javascript如何实现create方法
Nov 04 Javascript
微信小程序canvas动态时钟
Oct 22 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 adodb操作mysql数据库
2009/03/19 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
2015/06/20 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
php+MySql实现登录系统与输出浏览者信息功能
2016/07/01 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
2010/04/15 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
JavaScript设置、获取、清除单值和多值cookie的方法
2015/11/17 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
angular.extend方法的具体使用
2017/09/14 Javascript
Vue2 配置 Axios api 接口调用文件的方法
2017/11/13 Javascript
NodeJS服务器实现gzip压缩的示例代码
2018/10/12 NodeJs
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
2018/12/13 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
2019/03/19 Javascript
JS学习笔记之数组去重实现方法小结
2019/05/29 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
vue 使用 vue-pdf 实现pdf在线预览的示例代码
2020/04/26 Javascript
Vuex的各个模块封装的实现
2020/06/05 Javascript
基于PHP pthreads实现多线程代码实例
2020/06/24 Javascript
Vue3不支持Filters过滤器的问题
2020/09/24 Javascript
python f-string式格式化听语音流程讲解
2019/06/18 Python
Python是怎样处理json模块的
2020/07/16 Python
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
VSCode 自定义html5模板的实现
2019/12/05 HTML / CSS
乐天旅游台湾网站:Rakuten Travel TW
2017/06/01 全球购物
教育英语专业毕业生的求职信
2014/03/13 职场文书
承诺书的格式范文
2014/03/28 职场文书
导师推荐信范文
2014/05/09 职场文书
大专毕业生求职信
2014/07/05 职场文书
中学生纪念九一八事变演讲稿
2014/09/14 职场文书
中班上学期个人总结
2015/02/12 职场文书
python微信智能AI机器人实现多种支付方式
2022/04/12 Python