Webpack 3 中的新特性

简介: 本文简短地分享下最新发布的 Webpack 3 中的新特性,供大家参考。1. Webpack 3 的新特性6 月 20 日,Webpack 发布了最新的 3.0 版本,并在 Medium 发布了公告。

截图

本文简短地分享下最新发布的 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 CompilerRollupJS 等框架后,将 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 的版本主要是团队提供更好产品的一个决心象征吧。


作者:Parry
出处:http://www.cnblogs.com/parry/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

相关文章
|
JSON 前端开发 JavaScript
Webpack5新特性:使用 Assets Module 处理图片和字体资源
本文介绍了 Webpack5 的 Assets Module ,是其内置的用来处理图片字体文件等资源模块的新功能。相比与过去通过 loader 的方式去处理,更加方便和简洁。
1383 0
|
9月前
|
缓存 资源调度 监控
Webpack 5新特性详解与性能优化实践
Webpack 5通过确定性的Chunk ID、模块ID和导出ID实现了长期缓存,这意味着相同的输入将始终产生相同的输出。这样,当你的用户再次访问更新后的网站时,浏览器可以重用旧的缓存,而不是重新下载所有资源。
124 2
|
存储 缓存 JSON
webpack拓展篇(六十七):webpack5 新特性解析
webpack拓展篇(六十七):webpack5 新特性解析
426 0
webpack拓展篇(六十七):webpack5 新特性解析
|
缓存 JSON 资源调度
真香 - Webpack5 新特性之增量编译
webpack作为最使用最广泛的前端打包工具,已经成为前端工程化基础设施的一部分。 webpack5正式发布于2020年10月10号,距离上一个大版本Webpack4更新已经是2年前年了,每个大版本的升级都会有相当多的改变和提升,今天咱们就来看看增量编辑和长期缓存。
348 0
真香 - Webpack5 新特性之增量编译
|
JavaScript
Vue课程12-了解html-webpack-plugin的特性
Vue课程12-了解html-webpack-plugin的特性
115 0
Vue课程12-了解html-webpack-plugin的特性
|
5月前
|
JavaScript
webpack打包TS
webpack打包TS
149 60
|
4月前
|
缓存 前端开发 JavaScript
Webpack 打包的基本原理
【10月更文挑战第5天】
|
5月前
|
JavaScript 测试技术 Windows
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
本文介绍了如何使用vue-cli和webpack为Vue项目配置不同的生产和测试环境,包括修改`package.json`脚本、使用`cross-env`处理环境变量、创建不同环境的`.env`文件,并在`webpack.prod.conf.js`中使用`DefinePlugin`来应用这些环境变量。
405 2
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
|
4月前
|
前端开发 JavaScript
ES6模块化和webpack打包
【10月更文挑战第5天】
|
4月前
|
缓存 前端开发 JavaScript
深入了解Webpack:模块打包的革命
【10月更文挑战第11天】深入了解Webpack:模块打包的革命