在 webpack2.2 即将发布 之际,我们来看下 webpack2 有哪些新特性。至于是否升级,大家心里应该有自己的打算吧。
感觉 webpack2 最大的改进是 ES6 modules 和 Tree Shaking,其他都是配置方面的。
用的时候注意要把 babel-preset-es2015 的 modules 关掉:
{ "presets": [ ["es2015", { "modules": false }] ] }
这一特性通过 babel 插件的方式已可实现,比如 babel-plugin-import , babel-plugin-lodash ,所以现在开来已不觉得惊艳了。另外,他需要 npm 包的额外支持,打出一份 ES6 Module 的文件。
输出多 chunk 时需提供 promise-polyfill 。
提供异步的 webpack 配置方式。
劣势挺明显,社区、文档、性能,每样都是痛点。
插件和 loader 社区需要一段时间的适配。比如 ericclemmons/npm-install-webpack-plugin 目前还不支持 webpack2 。
官方文档 看起来还不错,不过大部分人遇到 webpack 配置问题,通常会去 stackoverflow 等问答社区搜,而这些社区在 webpack2 还很少有积累,估计很难找到答案。
把 roadhog 尝试 升级到 webpack2 ,并以 dva-example-user-dashboard 为例,比较了下 webpack1 和 webpack2 的性能,如下:
webpack1 | webpack2 | |
---|---|---|
roadhog server | 9s | 14s |
roadhog build | 18s | 19s |
roadhog build --debug (不压缩) | 9s | 14s |
慢了不是一点点。。
暂不升级,等 webpack2 社区完善以及性能提升吧。
(完)