news 2026/8/3 18:52:56

Webpack 3 中的新特性

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Webpack 3 中的新特性

本文简短地分享下最新发布的 Webpack 3 中的新特性,供大家参考。

1. Webpack 3 的新特性

6 月 20 日,Webpack 发布了最新的 3.0 版本,并在 Medium 发布了公告。

Webpack 目前几乎作为前端开发的标配,一些变化都可能影响到实际的项目,所以我们一起来看一看新版中有哪些主要的特性更新。
看下来,Webpack 3.0 整体相对于 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

Webpack 的更新很大部分依据于官方的一个新功能 投票页面,搞的还挺民主的感觉,一些开源软件可以参考这种运营方式。

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 中配置即可。

{% codeblock lang:js%}

module.exports = {
plugins: [
new webpack.optimize.ModuleConcatenationPlugin()
]
};

{% endcodeblock %}

当然可能因为某些模块的加载导致不能配置成功,官方提供了 CLI 的参数--display-optimization-bailout用于 debug 是什么原因导致了配置失败。

1.3 Magic Comments

其实就是可以命令 chunk name 了。

{% codeblock lang:js%}

import(/* webpackChunkName: “my-chunk-name” */ ‘module’);

{% endcodeblock %}

更多的使用可以参考这里。

2. 接下来的新特性

  • 更好的编译缓存
  • 更快的首次以及增量编译速度
  • 对 TypeScript 更加友好地支持
  • 修改 Long term caching
  • 增加对 WASM Module 的支持
  • 用户体验的改进

3. 总结

总体看来变化不大,而且如Magic Comments等功能就已经在 2.4 的版本中发布了,个人感觉,发布一个 3.0 的版本主要是团队提供更好产品的一个决心象征吧。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/3 18:51:40

快速解锁GitHub访问的终极解决方案:Fast-GitHub浏览器扩展

快速解锁GitHub访问的终极解决方案:Fast-GitHub浏览器扩展 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 你是否曾经在…

作者头像 李华
网站建设 2026/8/3 18:51:16

React.js 开发参见问题 QA

文章中我整理了 React.js 开发过程中一些参见问题的解答汇总,供大家参考。 1. 一些课程资源 课程源码 GitHub 地址:https://github.com/ParryQiu/IMOOC-React 1.1 2018-03-26 更新 针对源码文件夹 react-router-4_webpack-2-update 更新了免费的讲解…

作者头像 李华
网站建设 2026/8/3 18:47:33

微信小程序开发平台新功能「云开发」快速上手体验

微信小程序开发平台刚刚开放了一个全新的功能:云开发。 简单地说就是将开发人员搭建微信小程序后端的成本再次降低,此文刚好在此产品公测时,来快速上手看看都有哪些方便开发者的功能更新。 微信小程序一直保持一个比较稳定的节奏进行功能的开…

作者头像 李华
网站建设 2026/8/3 18:46:33

Unity UI视频播放:VideoPlayer、RenderTexture与RawImage核心原理与实战

1. 项目概述:一个看似简单却暗藏玄机的播放需求在Unity里播放一段视频,听起来是再基础不过的功能。很多新手朋友,包括当年的我,第一次接触时都会想:这不就是拖一个Video Player组件,然后指定一个视频文件就…

作者头像 李华