Webpack 3 中的新特性

本文简短地分享下最新发布的 Webpack 3 中的新特性,供大家参考。
1. Webpack 3 的新特性
6 月 20 日,Webpack 发布了最新的 3.0 版本,并在 Medium 发布了公告。
Webpack 目前几乎作为前端开发的标配,所以我们一起来看一看新版中有哪些主要的特性更新。
整体相对于 2.0 变化不大,不必惊慌。
Webpack 2.0 的相关视频教程,可以参见我录制的共计 20 集的视频教程,Webpack 2 视频教程。
下面是 v3.0 Release 中的 Features List。
- node_modules no longer mangle to ~ in stats [breaking change]
- timeout for HMR requests is configurable
- added experimental Scope Hoisting (webpack.optimize.ModuleConcatenationPlugin)
- some performance improvements
- added output.libraryExport to select an export for the library
- sourceMapFilename now supports [contenthash] [breaking change]
- module.noParse supports functions
- add node: false option to disable all node specific additions
1.1 更新方法以及版本迁移
通过命令直接安装即可,后面需要加上版本号。
npm install webpack@3.0.0 --save-dev
或者
yarn add webpack@3.0.0 --dev
至于从 Webpack 2 升级到 Webpack 3,官方的原话是:
no effort beyond running the upgrade commands in your terminal
所以可以断定,虽然版本号进行了大版本号的变更,不过并不会有太大的变化,可以松一口气了。
1.2 Scope Hoisting
之前的每一个 module 都被包含在一个独立的 function closures 中,这样的处理方式就造成了在代码在浏览器中执行缓慢的问题。
开发团队参考了 Closure Compiler 和 RollupJS 等框架后,将 function closures 的包裹方式变成了可配置的形式。
就是在之前的 plugins 中配置即可。
module.exports = {
plugins: [
new webpack.optimize.ModuleConcatenationPlugin()
]
};
当然可能因为某些模块的加载导致不能配置成功,官方提供了 CLI 的参数 --display-optimization-bailout 用于 debug 是什么原因导致了配置失败。
1.3 Magic Comments
其实就是可以命令 chunk name 了。
import(/* webpackChunkName: "my-chunk-name" */ 'module');
更多的使用可以参考这里。
2. 接下来的新特性
- 更好的编译缓存
- 更快的首次以及增量编译速度
- 对 TypeScript 更加友好地支持
- 修改 Long term caching
- 增加对 WASM Module 的支持
- 用户体验的改进
3. 总结
总体看来变化不大,而且如 Magic Comments 等功能就已经在 2.4 的版本中发布了,个人感觉,发布一个 3.0 的版本主要是团队提供更好产品的一个决心象征吧。
Webpack 3 中的新特性的更多相关文章
- ASP.NET 5与MVC 6中的新特性
差点忘了提一句,MVC 6中默认的渲染引擎Razor也将得到更新,以支持C# 6中的新语法.而Razor中的新特性还不只这一点. 在某些情况下,直接在Web页面中嵌入某些JSON数据的方式可能比向服务 ...
- 使用示例带你提前了解 Java 9 中的新特性
使用示例带你提前了解 Java 9 中的新特性 转载来源:https://juejin.im/post/58c5e402128fe100603cc194 英文出处:https://www.journa ...
- HTML 5中的新特性
HTML 5中的新特性 html5新增了一些语义化更好的标签元素.首先,让我们来了解一下HTML语义化. 1.什么是HTML语义化? 根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开 ...
- (数据科学学习手札73)盘点pandas 1.0.0中的新特性
本文对应脚本及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 毫无疑问pandas已经成为基于Pytho ...
- 1 PHP 5.3中的新特性
1 PHP 5.3中的新特性 1.1 支持命名空间 (Namespace) 毫无疑问,命名空间是PHP5.3所带来的最重要的新特性. 在PHP5.3中,则只需要指定不同的命名空间即可,命名空间的分隔符 ...
- Firefox 23中的新特性(新陷阱)
话说有一天突然发现我们的网站页面上的JQuery功能都失效了,Firebug中显示如下的错误 Blocked loading mixed active content "http://xxx ...
- Python3中的新特性(3)——代码迁移与2to3
1.将代码移植到Python2.6 建议任何要将代码移植到Python3的用户首先将代码移植到Python2.6.Python2.6不仅与Python2.5向后兼容,而且支持Python3中的部分新特 ...
- HTML5 中的新特性:
一,用于绘画的 canvas 元素,<canvas>标签替代Flash Flash给很多Web开发者带来了麻烦,要在网页上播放Flash需要一堆代码和插件.<canvas>标签 ...
- C# 6.0中你不知道的新特性
为什么写? 今天去上班的公交上,有朋友在张队(张善友)的微信群里,发了一个介绍C# 6.0新特性的视频,视频7分钟,加上本人英语实在太low,整体看下来是一脸懵逼的. 下班回到家里,打开这个视频,把视 ...
随机推荐
- mui开发app之html5+,5+Runtime,5+sdk,native.js
说说几个名词 html5:目前最新的html规范,w3c联盟制定,手机端主要由webkit实现规范,对用户来说就是浏览器实现了它 html5+:所谓"+",扩充了html5原本没有 ...
- 七牛整合 ueditor (拦住那头牛,七牛又如何)
最近遇到个项目,要求所有图片都必须整合到七牛上,看了把你谈文档踩在前辈们的基础上终于把他完成了,恰巧本屌丝最近刚好有时间,本着天下屌丝是一家的原则,和小朋友们一同学习 闲话少说入正题. 第一 :下载编 ...
- Windows 10 碎片整理程序使用
1.打开 此电脑 2.右击任意一个磁盘,这里以C盘为例,点击 属性 3.点击 工具 选项卡--->优化 4.选中其中的一个盘 优化 5.然后静等结束,就好啦. 虽然不知道有什么用,...
- java入门基础
什么是java? java是一门编程语言 编程语言有很多种 你比如 C语言 等等 为什么学习java呢! 因为你要和计算机交互 当然了你用汉语跟她说她听不懂 所以你要学习编程语言 那么额咱们的ja ...
- css定位 浮动 伪类 margin
一,margin .标准文档流,margin在竖直方向的不叠加,以较大的为准 .使用margin: auto;的盒子必须有明确的width,并且只有标准文档流的盒子 才能使用margin: auto; ...
- linux中/etc/profile、/etc/profile.d/、/etc/bashrc、~/.bashrc、~/.bash_profile、~/.bash_logout的作用与区别
作用: /etc/profile:登录时用来设置环境变量,执行文件中的命令,对所有用户生效. /etc/profile.d/:登录时和执行bash命令打开子shell时执行目录下所有已.sh结尾的脚本 ...
- SSH 远程执行任务
SSH 是 Linux 下进行远程连接的基本工具,但是如果仅仅用它来登录那可是太浪费啦!SSH 命令可是完成远程操作的神器啊,借助它我们可以把很多的远程操作自动化掉!下面就对 SSH 的远程操作功能进 ...
- Vue.js 实战总结
最近在某个项目中用到了Vue.js,从上手做开发到项目发布,一步步踩了不少坑.本文试图总结过去一个多月使用Vue.js中的一些经验,也算是一点心得体会吧,拿出来与大家分享,欢迎多多交流. Vue.js ...
- MyBatis之级联——一对多关系
上次我们讲到了MyBatis的一对一关系的表示,简单回顾一下一对一关系就是一个学生只有一个学生证.那么什么是一对多关系呢?一个学生有多个课程这就是一对多的关系.我们结合上一章中的学生和学生证,在此基础 ...
- JSP Cookie的使用
Cookie 通常用于网站记录客户的某些信息,比如客户的用户名及客户的喜好等.一旦用户下次登录,网站可以获取到客户的相关信息,根据这些客户信息,网站可以对客户提供更友好的服务. Cookie sess ...