前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >​Webpack5 让我头疼!

​Webpack5 让我头疼!

作者头像
ConardLi
发布2020-11-10 14:21:55
7010
发布2020-11-10 14:21:55
举报
文章被收录于专栏:code秘密花园code秘密花园

Webpack 不再提供自动引用 polyfills。这是一个非常大的突破性变化,也引起了很多争议,下面就是一位 NPM 包维护者对 Webpack5 的吐槽。

npm 上的大多数软件包主要是使用 Node.js 开发的。但是,由于采用了自动引用 polyfills 功能,它们中的大多数在浏览器中也可以正常使用。问题是 Webpack 通过自动引用 polyfills 为开发者提供便利,现在又突然取消了。好像他们从来没有提供过这个功能,但是开发人员现在还是希望 npm 上的包在绑定后能在浏览器中使用。

虽然我意识到 WebpackJavaScript 社区中的一个重要工具,但我个人对它的感觉是复杂的,因为让作为一个包维护者的我感觉非常痛苦。用户会认为每个 Webpack 工具/配置问题都是某个特定包的问题,要求对该软件包(而非Webpack)提供支持。仅在过去的一年里,我就不得不处理数以百计的 Webpack 问题。

随着自动引用 polyfills 的取消,这只会变得更糟,因此我将在此明确列出我的立场:

  • 我的软件包主要是为 Node.js 开发的。它们中的许多都可以在浏览器中自动工作(这意味着它们不使用任何 Node.js API )。有些需要 Node.js API,而在 Webpack 5 则由开发者自己提供 polyfills
  • 我不打算在包中添加 polyfillsPolyfills 会让我的包变大并且带来 bug ,我不想让 Node.js 的用户因此而感到不方便。
  • 我不会做 Webpack 支持。过去我一直很宽容,回答了大多数 Webpack 支持问题,我本可以把这些时间花在更重要的事情上。

我喜欢 Node.js 的主要原因是,我不必处理JS前端工具的糟糕问题。

坦白地说, Webpack 不进行自动引用 polyfills 在理论上确实有意义。我只是认为他们做得太早了,并且对它对生态系统的影响考虑的很少。我想在几年中,当更多的 Node.js 软件包仅用于 ESModule 并且 Node.js 支持更多的浏览器 API 时,这种更改会容易得多。

糟透了!

大家一起去 Webpack Issues(https://github.com/webpack/webpack/issues) 投诉他们,是他们造成了这些影响!

如何手动添加 polyfills

这是 Webpack 博客文章所说的:

迁移:resolve.aliasProvidePlugin ,错误会给出提示。(有关v4中使用的 polyfills、mocks ,请参考 node-lib-browser)

我可以做些什么来长期改善这种情况?

你可以帮助 Node.js 和浏览器更加统一。例如,Node.js 具有 util.promisify ,这是比较常用的。我不明白为什么在浏览器中也没有这种重要的方法。反过来,浏览器具有 Node.js 应该具有的 API。例如,fetch 、Web StreamsWebsockets 等。

你觉的 Webpack 的这个改动对你影响大吗?欢迎留言讨论!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 code秘密花园 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 糟透了!
  • 如何手动添加 polyfills
  • 我可以做些什么来长期改善这种情况?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档