webpack 为什么一些小型js文件包含对“require”函数的调用?

nqwrtyyt  于 2022-12-13  发布在  Webpack
关注(0)|答案(1)|浏览(139)

我一直在现代化一些旧的gulp配置,其中js文件被连接,然后通过迁移到webpack来缩小。
一些捆绑包包含库,如moment.js和isotope-docs.min.js,当捆绑与webpack我会得到错误的特定文件或路径找不到。
例如,查看moment.jsrequire("./locale/"+t),这导致我的webpack失败,因为我没有区域设置目录。
为什么捆绑的js文件有require功能,而浏览器不理解?

kqlmhetl

kqlmhetl1#

ES modules出现之前,JavaScript没有正式的模块语法。而且,开发人员希望一次性为Node.js和浏览器编写一个库。最接近的是Node.js's require(),它在浏览器上不存在。
因此,像BrowserifyRollup这样的工具会做的是 *polyfill require()的实现 *(例如,将代码 Package 在“UMD“中)。这样,模块可以在任何平台上工作,require()调用就像在Node.js中一样工作(它的实现可能会有所不同,并且可以扩展,因为处理文件系统与处理网络非常不同)。

相关问题