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

发布时间 - 2026-01-11 02:13:14    点击率:

刚开始用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。

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


# webpack打包速度  # webpack  # 速度慢  # 打包速度慢  # Webpack打包慢问题的完美解决方法  # Webpack打包构建太慢试试这几个提升打包速度方案  # 另外一个  # 打进  # 很慢  # 配置文件  # 自己的  # 第一回  # 这是  # 加载  # 都不  # 去了  # 的说  # 就不  # 很多人  # 不是很  # 这个问题  # 要去  # 要在  # 这是我  # 请使用  # 还有一个 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何创建自定义中间件?(Middleware代码示例)  如何快速搭建高效可靠的建站解决方案?  微信公众帐号开发教程之图文消息全攻略  jquery插件bootstrapValidator表单验证详解  如何在阿里云虚拟主机上快速搭建个人网站?  个人摄影网站制作流程,摄影爱好者都去什么网站?  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  Laravel怎么实现模型属性的自动加密  Laravel如何实现一对一模型关联?(Eloquent示例)  JavaScript如何实现倒计时_时间函数如何精确控制  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  android nfc常用标签读取总结  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  高性价比服务器租赁——企业级配置与24小时运维服务  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  WEB开发之注册页面验证码倒计时代码的实现  高性能网站服务器部署指南:稳定运行与安全配置优化方案  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  如何用PHP工具快速搭建高效网站?  Laravel如何使用Collections进行数据处理?(实用方法示例)  Thinkphp 中 distinct 的用法解析  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  iOS中将个别页面强制横屏其他页面竖屏  如何在不使用负向后查找的情况下匹配特定条件前的换行符  Laravel如何实现模型的全局作用域?(Global Scope示例)  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  EditPlus中的正则表达式 实战(1)  jQuery 常见小例汇总  如何在腾讯云服务器快速搭建个人网站?  详解Android图表 MPAndroidChart折线图  浅谈Javascript中的Label语句  Python函数文档自动校验_规范解析【教程】  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  zabbix利用python脚本发送报警邮件的方法  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  利用python获取某年中每个月的第一天和最后一天  *服务器网站为何频现安全漏洞?  公司门户网站制作流程,华为官网怎么做?  Laravel如何使用.env文件管理环境变量?(最佳实践)  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  如何用VPS主机快速搭建个人网站?  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  七夕网站制作视频,七夕大促活动怎么报名?