24

​Webpack5 让我头疼!

 3 years ago
source link: https://mp.weixin.qq.com/s?__biz=Mzg2NDAzMjE5NQ%3D%3D&%3Bmid=2247486826&%3Bidx=1&%3Bsn=bfeec0b92933d4ed7ecd07573459a725
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

QZbANj.jpg!mobile

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

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

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

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

  • Node.js
    Node.js API
    Node.js API
    Webpack 5
    polyfills
    
  • polyfills
    Polyfills
    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.alias 和  ProvidePlugin ,错误会给出提示。(有关v4中使用的  polyfills、mocks ,请参考  node-lib-browser )

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

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

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

YZzamaU.jpg!mobile


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK