【译】webpack正式发布v3.0.0

原文链接: webpack 3: Official Release!!

作者:Sean T. Larkin

翻译:野草

发布webpack 2之后,我们就跟社区承诺:我们将发布大家投票出来的功能特性,而且会保证更快更稳定的发布周期。

不会再有一年才出来的测试版本,不会再有不兼容的重大改变。我们承诺我们会保证大家的权益,因为你们才使得wepack如此欣欣向荣。

现在webpack团队很自豪地跟大家宣布,今天(2017.06.20)正式发布了webpack 3.0.0!现在就可以下载升级了!!!

npm install webpack@3.0.0 --save-dev

或者

yarn add webpack@3.0.0 --dev

从webpack 2迁移到webpack 3只需要上述简简单单的一条命令行就完成升级。由于webpack内部的一些会影响到插件的大更改,我们把这个版本定为全新的版本号。

新特性

如上所述,我们更新的是你们投票出来的特性。正因为Github上庞大的代码贡献,赞助者以及拥护者的支持,我们才得以一一击破这些新特性。

作用域提升(Scope Hoisting)

作用域提升是wepack 3的核心特性。webpack在打包时会把每个模块用单独的闭包封装起来,这些闭包会减速代码的执行过程,但这是webpack在性能和??之间作出的一个权衡。相比之下,诸如Closure Compiler和RollupJS之类的打包工具“提升”或者说打通了所有模块的作用域,将文件打包到一个闭包函数中,提高了代码的执行速度。

现在有了webpack 3,可以在配置上中添加如下插件来实现作用域提升的功能:

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

作用域提升是ECMAScript标准中模块的新语法。webpack打包也可能会回退到常规的打包策略,这取决于你采用的是哪种模块语法(ES模块语法还是其他模块语法),当然还有其他条件

想知道回退的原因,可以添加--display-optimization-bailout属性,它会在回退的时候通知你并显示原因。

由于作用域提升移除了模块的闭包函数,打包后的代码可能会变小。不过,最关键的提升点是代码执行速度。如果你有很好的对比例子,可以告诉我们,我们很乐意与大家分享。

魔法注释(Magic Comments)

当我们告诉大家webpack 2可以使用动态引入语法(import())的时候,开发者反馈说它不能像require.ensure一样命名打包之后文件的名字。

现在我们引入了社区所谓的魔法注释特性,它能让开发者在import()语句中以内联注释的方式传入打包后文件的名字,以及其他更多配置

import(/* webpackChunkName: "my-chunk-name" */ 'module');

这些特性在webpack 2.4 和 2.6 版本中已经发布,但是v3版本修复了已有的bug,保证了特性的稳定性。现在,我们可以像使用require.ensure一样灵活地使用动态引入语法了。

想了解更多,点击查看我们最新的“代码分割”官方文档

下一步

我们希望带给你们更多的新特性和原有代码改善。点击投票页面,选出你最期待的特性,我们将根据大家的意愿来优先完善。

以下是我们正在做的:

  • 更好的构建缓存
  • 更快的初次和渐进构建体验
  • 更好的TypeScript体验
  • 长期缓存改进
  • WASM模块支持
  • 用户体验提升

附录

Git仓库上列出列 webpack 2.6.1到wepback 3.0.0的新特性:

  • node_modules no longer mangle to ~ in stats(重大改变)
  • HMR请求可配置超时时间
  • 新增试验性特性作用域提升
  • 性能提升
  • 新增output.libraryExport配置导出的库
  • sourceMapFilename支持[contenthash](重大改变)
  • module.noParse支持函数
  • 新增node: false配置项使所有node配置失效
Webpack 是一个现代化的 JavaScript 应用程序打包工具。它可以将应用程序的所有静态资源(包括 JavaScript、CSS、图片等)进行打包,并将其转换为可以在浏览器中运行的代码。通过使用 webpack,开发者可以更高效地管理和部署他们的应用程序。 在使用 webpack 进行打包之前,我们需要先进行一些配置。首先,我们需要创建一个 webpack.config.js 文件,这个文件用来配置 webpack 的打包规则和行为。在这个配置文件中,我们可以设置入口文件、输出路径、加载器、插件等。 配置好 webpack 后,我们就可以使用命令行工具来运行 webpack,生成一个或多个打包后的文件。在终端中执行类似于 `webpack --config webpack.config.js` 的命令,webpack 将会根据配置文件进行打包。打包完成后,我们可以将生成的文件部署到服务器上,以供用户访问。 在部署到服务器之前,我们需要确保服务器已经安装了 Node.js 环境,并已经安装了需要的依赖。然后,将打包生成的文件上传到服务器上的指定目录即可。在部署过程中,我们可以使用各种方式来实现自动化部署,例如使用 Jenkins、Git Hooks 等工具。 最后,一旦我们的应用程序部署到服务器上,用户就可以通过访问服务器的地址来访问我们的应用程序。Webpack 打包使得应用程序的体积更小,并且能够提供更好的性能和用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值