Webpack不再自动填充Node.jsAPI。这是一个巨大的突破性变化,会给用户和包维护人员带来不便。
NPM上的大多数包主要是使用Node.js编写的。然而,多亏了自动多层填充,它们中的大多数多年来在浏览器中也工作得很好。问题是,webpack通过自动充填创造了便利,现在又突然把它拿走了。如果他们从未使用PolyFill,这将不是问题,但是开发人员现在期望NPM上的包在捆绑后只能在浏览器中工作。
虽然我意识到webpack是javascript社区中的一个重要工具,但我个人对此有复杂的感受,因为作为一名包维护者,它给我带来了巨大的悲痛。用户认为每个webpack工具/配置问题都是特定软件包的问题,并打开一个问题,请求对该软件包的支持,而不是webpack。仅在过去的一年里,我就不得不在我的简历上处理数以百计的webpack问题。
随着自动填充的移除,情况只会变得更糟,所以我将清楚地阐述我对此的立场:
我的包主要是为Node.js制作的。它们中的许多会自动在浏览器中工作(这意味着它们不使用任何Node.jsAPI)。有些需要Node.jsAPI,而在webpack 5中,您可以多填充它们。
我不会将多边形填充添加到我的包裹中。多边形填充会增加膨胀和错误,我不希望Node.js用户因此而感到不便。
我不打算做webpack的后援。我过去相当宽容,回答了大多数webpack支持的问题,但这需要我很多时间才能花在更重要的事情上。我会转而向用户推荐webpack支持频道。
我喜欢Node.js的主要原因是我不必处理JS前端工具的麻烦。
老实说,webpack不做息肉在理论上是有道理的。我只是认为他们做得太早了,没有考虑到它对生态系统的影响。我想,当更多的Node.js包只支持ESM,并且Node.js支持更多的浏览器API时,这种更改在某些年份会容易得多。
迁移:Resolution ve.alias和ProVidePlugin。错误将给出提示。(有关v4中使用的多边形填充和模拟,请参阅node-libs-Browser)。
您可以帮助使Node.js和浏览器更加统一。例如,Node.js有util.promisify,这是常用的。我不明白为什么浏览器中不能提供这样的基本方法。反过来,浏览器拥有Node.js应该拥有的API。例如,Fetch、Web Streams(Node.js流模块很糟糕)、Web Crypto(我听说有传言说即将推出)、WebSockets等等。
欢迎来到一个语言很重要的地方。在媒体上,聪明的声音和原创的想法占据了中心舞台-看不到广告。观看。
关注所有你关心的话题,我们将为你提供最好的故事到你的主页和收件箱。探索。
不受限制地访问媒体上最好的故事,并在您工作的同时为作家提供支持。只有5美元/月。升级换代