webpack4.0配置记录(2)

接上一篇webpack4.0配置记录(1),继续记录学习webpack配置。

定义环境变量

new Webpack.DefinePlugin({//用来定义全局环境变量DEV:JSON.stringify('dev'),FLAG:'true'
}),

webpack简单优化

  1. noParse
module:{noParse:'/jquery/',//不去解析设置的包所依赖的关系,如jquery
}
  1. ignorePlugin
module:{noParse:'/jquery/',//不去解析设置的包所依赖的关系rules:[{test:/\.js$/,exclude:/node_modules/,include:path.resolve('src'),use:{loader:'babel-loader',options:{presets:['@babel/preset-env','@babel/preset-react']}}}]
}

通过exclude排除和include包含某些模块
另外也可以使用webpack自带的ignorePlugin插件排除某些包,减少体积。

new webpack.IgnorePlugin(/\.\/locale/,/moment/),

以上配置忽略了时间格式化moment.js中的语言包

  1. happypack多线程打包
let Happypack=require('happypack')
...
module.exports={module:{noParse:'/jquery/',//不去解析设置的包所依赖的关系rules:[{test:/\.js$/,exclude:/node_modules/,include:path.resolve('src'),use:'Happypack/loader?id=js'// use:{//     loader:'babel-loader',//     options:{//         presets:[//             '@babel/preset-env',//             '@babel/preset-react'//         ]//     }// }}]},plugins:[new Happypack({id:'js',use:[{loader:'babel-loader',options:{presets:['@babel/preset-env','@babel/preset-react']}}]})]
}
  1. webpack内置功能

(1)tree-shaking
(2)scope-hosting
这两项优化只在生产环境下有效

  1. 抽离公共代码
module.exports={optimization:{splitChunks:{//分割代码块cacheGroups:{//缓冲组common:{chunks:'initial',minSize:0,//抽离模块最小粒度是0minChunks:2//表示代码块用过2次以上就要抽离},vendor:{priority:1,//相当于权重,先抽离第三方模块,如果不设置该属性,分割代码块将从上到下,无法抽离第三方模块。test:/node_modules/,chunks:'initial',minSize:0,//抽离模块最小是0minChunks:2//表示用过2次以上就要抽离}}}},
}
  1. 文件热更新
devServer:{hot:true
},
plugins:[new webpack.NamedModulesPlugin(),//打印更新的模块路径new webpack.HotModuleReplacementPlugin()//热更新
]

7.可以使用dllPlugin动态链接库优化
DllPlugin 和 DllReferencePlugin提供了以大幅度提高构建时间性能的方式拆分软件包的方法。原理是将特定的第三方NPM包模块提前构建,然后通过页面引入。这不仅能够使得vendor文件可以大幅度减小,同时,也极大的提高了构件速度。网上别的大神有一篇文章写的很详细,可以参考,传送门。

以上就是一些自己在学习webpack4.0配置过程中的一些学习记录,写出来和大家分享,如果有错误,还望告知。个人博客同步更新,欢迎关注交流!不要忘了点个赞,谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/275968.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flex如何做响应式设计_响应式设计-您做错了!

flex如何做响应式设计Responsive design is not just about the web that automatically adjusts to different screen resolutions and resizeable images, but designs that are crucial for web performance.自适应设计不仅涉及可自动适应不同屏幕分辨率和可调整大小图像的网…

30万手表推荐_今年六十岁生日,儿子说要送只30万的手表,请问有哪些推荐?...

关注腕表部落,尽享腕表生活一位读者向笔者提出这样一个问题:今年六十岁生日,儿子说要送只30万的手表,请问有哪些推荐?首先要恭喜这位老爷子,一来是生日马上就要到了,二来是还有这么孝顺而且慷慨…

写 Node.js 代码,从学会调试开始

大家好,我是若川(点这里加我微信 ruochuan12,长期交流学习)。今天推荐这篇调试文章,熟悉我的读者都知道我写的源码文章都多次强调要调试,而且写了调试方法。点击下方卡片关注我、加个星标,或者查…

创建用户友好的表单

Forms are a common way to engage with users and could be a user’s first impression of your product. Since forms aren’t always the user’s favourite thing, it is essential to make filling out forms as easy as possible. Let’s go over a few tips for creati…

细节决定成败—关于.net的.dll.refresh文件

一直在做.net的项目,c/s的、b/s的,一直没有注意这个东西。众所周知,.net的程序生成后会在bin目录下生成.dll文件,而.dll.refresh这个文件从何而来呢?那天无聊地google了下才知,这个东东是在你的项目中引用第…

环境在c盘_如何给女朋友解释为什么 Windows 上面的软件都把自己安装在 C 盘

本文经授权转载自漫画编程(ID:mhcoding)周末,我在家里面看电视,女朋友正在旁边鼓捣她的电脑,但是好像并不是很顺利,于是就有了以下对话。计算机存储我们使用的计算机中,保存信息的介质有两类:一…

能让你纵享丝滑的SSR技术,转转这样实践

大家好,我是若川(点这里加我微信 ruochuan12,长期交流学习)。今天推荐这篇图文并茂的SSR技术文章。这是江西前端群里一个小伙伴的文章。群里小伙伴很多都在知名大厂,但他们都很低调。点击下方卡片关注我、加个星标&…

魅族魅蓝mirror简单打开usb调试模式的步骤

经常我们使用安卓手机链接电脑的时候,或者使用的有些应用比如我们企业营销团队经常使用的应用引号精灵,以前使用的老版本就需要开启USB调试模式下使用,现经常新版本不需要了,如果手机没有开启USB调试模式,电脑则无办法…

hp-ux 单用户 启动_UX备忘单:搜索与浏览

hp-ux 单用户 启动重点 (Top highlight)When designing search results and interest sites, you have to keep in mind what ‘mode’ your user is in. Are they in ‘searching mode’ or ‘browsing mode’? This will help you determine how to design your platform to…

细数开源历史上的九个重大事件

开放源码(开源)的精神在于使用者可以使用、复制、散布、研究和改进软件。这可以追溯到20世纪60年代,至今已有半个世纪了。伯乐在线-职场博客的这篇文章将列举开源历史上的九大重要事件。虽然本文不是专门对开源产品,但还是说到了一…

有赞大数据平台安全建设实践

一、概述 在大数据平台建设初期,安全也许并不是被重点关注的一环。大数据平台的定位主要是服务数据开发人员,提高数据开发效率,提供便捷的开发流程,有效支持数仓建设。大数据平台的用户都是公司内部人员。数据本身的安全性已经由公…

请先设置tkk_理光MP2014扫描至文件夹的设置方法

理光旗下的2014系列入门级A3黑白复印机市场保有量较大,该系列机型加装M16网卡后可以方便的实现扫描至文件夹功能,经常有客户咨询该机型的扫描设置方法,下面我就以MP2014D为例来演示一下该机型的SMB扫描设置方法:首先是在电脑上建立…

听说现在都考这些React面试题

大家好,我是若川。最近刷脉脉看见圈里都在聊面试,吐槽最多的还是万年考点 React 和 Vue。不过关于两者的比较似乎有点针尖对麦芒的赶脚。确实,面试的偏重点往往映射公司对该框架的重视程度,但也不能一概而论,去学习或放…

荒岛余生为什么没有打开包裹_您会带到荒岛什么办公桌设置?

荒岛余生为什么没有打开包裹Throughout life, you experience a lot of desks and a lot of desk setups. Real or virtual, at the office or at home, temporal or permanent — just a way to call it, nothing is permanent— a big one with a great office view or a sma…

第五课 路由之初识路由

1.路由快速入门 1.1 概念 是指把数据从一个地方传送到另一个地方的行为和动作,而路由器,正是执行这种行为动作的机器。它的英文名称为Router,是一种连接多个网络或者网段的网络设备,它能将不同网络或者网段之间的数据信息进行“翻…

如何使用 React 和 React Hooks 创建一个天气应用

大家好,我是若川(点这里加我微信 ruochuan12,长期交流学习)。今天推荐一个练手的React项目,创建天气应用,相信很快能看完。昨天发送书掉粉18人,是我没想到的,送书一般是出版社按阅读…

拟态防御_纯素食汉堡的拟态

拟态防御If people are so against the idea of pigs and chickens being chopped up why would they want to buy fake bacon with realistic visual streaks of pork fat, or soy meat that tries to replicate the streaky texture of cooked chicken flesh? Surely these …

delphi 算术溢出解决方法_性能优化系列:JVM 内存划分总结与内存溢出异常详解分析...

前言那些使用过 C 或者 C 的读者一定会发现这两门语言的内存管理机制与 Java 的不同。在使用 C 或者 C 编程时,程序员需要手动的去管理和维护内存,就是说需要手动的清除那些不需要的对象,否则就会出现内存泄漏与内存溢出的问题。如果你使用 J…

微信小程序如何发送 http 请求

2019独角兽企业重金招聘Python工程师标准>>> 为什么要使用云函数发送 http 请求小程序云函数5 个可信域名不受限制需要备案无需备案在一些特殊情境, 比如域名没有备案或域名 5 个以上就需要使用云函数发送 HTTP 请求了. 如何使用云函数发送 HTTP 请求? 在云函数中能…

H5 页面列表缓存方案

大家好,我是若川(点这里加我微信 ruochuan12,长期交流学习)。今天给大家介绍一下关于h5页面的列表缓存方案。感谢屏幕前的你一直关注着我。点击下方卡片关注我、加个星标,或者查看源码等系列文章。学习源码整体架构系列…