Webpack5 让我头疼!
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.
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 Streams
, Websockets
等。
你觉的 Webpack
的这个改动对你影响大吗?欢迎留言讨论!
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK