Webpack4与3区别

作者 : 开心源码 本文共1262个字,预计阅读时间需要4分钟 发布时间: 2022-05-12 共202人阅读

webpack3的详细讲解请转到这里https://www.songma.com/p/42e11515c10f

2018年8月25号webpack4正式发布。再次之后只需使用npm install webpack命令,默认安装的就是版本4。在不知道情况下,向我一样的小白就会跳入各种坑中。接下来我说说版本4与以前版本的区别之处。

安装

首先要重新安装webpack依赖包
1 webpack
2 webpack-cli
2 各种配件更新,各种loader更新。假如在编译过程中报can not find xxx的错误,说明xxx对应的loader可能需要更新了,由于webpack4去掉了this.options的支持

在webpack4以后,webpack启动命令行的代码放入了webpack-cli 中。
假如只安装了webpack,那么它只能在nodejs中使用,不能再命令行中使用。

配置

mode

webpack添加了一个mode配置,只有两种值development | production。对不同的环境他会启用不同的配置,比方开发环境下启用optimization.nameModules(原nameModulesPlugin已经弃用),而生产环境默认弃用optimization.noEmitOnErrors`(原noEmitOnErrorsPlugin先已弃用)

不同环境下配置如下

1 默认生产环境开起了很多代码优化(minify, splite)
2 开发时开启注视和验证,并加上了evel devtool
3 生产环境不支持watching,开发环境优化了打包的速度
4 生产环境开启板块串联(原ModulecondatenationPlugin)
5 自动设置process.env.NODE_EVN到不同环境,也就是不使用DefinePlugin了
6 假如mode设置none,所有默认设置都去掉了。

CommonsChunkPlugin

相信大家听说webpack更新到4,最大的感触就是去点了这个CommonsChunkPlugin,由于官方发的change log最大的篇幅就是详情的他
CommonsChunkPlugin删除之后,改成使用optimization.splitChunks进行板块划分,详细文档看这里

官方的说法是默认设置已经对大部分客户来说非常棒了,但是需要注意一个问题,默认配置只会对异步请求的板块进行提取拆分,假如要对entry进行拆分,需要设置optimization.splitChunks.chunks = 'all'。其余的内容大家就自己研究吧。

对应之前我们拆分runtime的情况,现在也有一个配置optimization.runtimeChunk,设置为true就会自动拆分runtime文件

UglifyJsPlugin

现在也不需要使用这个plugin了,只要要使用optimization.minimize为true就行,production mode下面自动为true

optimization.minimizer可以配置你自己的压缩程序

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Webpack4与3区别

发表回复