我一直在现代化一些旧的gulp配置,其中js文件被连接,然后通过迁移到webpack来缩小。一些捆绑包包含库,如moment.js和isotope-docs.min.js,当捆绑与webpack我会得到错误的特定文件或路径找不到。例如,查看moment.js有require("./locale/"+t),这导致我的webpack失败,因为我没有区域设置目录。为什么捆绑的js文件有require功能,而浏览器不理解?
require("./locale/"+t)
require
kqlmhetl1#
在ES modules出现之前,JavaScript没有正式的模块语法。而且,开发人员希望一次性为Node.js和浏览器编写一个库。最接近的是Node.js's require(),它在浏览器上不存在。因此,像Browserify和Rollup这样的工具会做的是 *polyfill require()的实现 *(例如,将代码 Package 在“UMD“中)。这样,模块可以在任何平台上工作,require()调用就像在Node.js中一样工作(它的实现可能会有所不同,并且可以扩展,因为处理文件系统与处理网络非常不同)。
require()
1条答案
按热度按时间kqlmhetl1#
在ES modules出现之前,JavaScript没有正式的模块语法。而且,开发人员希望一次性为Node.js和浏览器编写一个库。最接近的是Node.js's
require()
,它在浏览器上不存在。因此,像Browserify和Rollup这样的工具会做的是 *polyfill
require()
的实现 *(例如,将代码 Package 在“UMD“中)。这样,模块可以在任何平台上工作,require()
调用就像在Node.js中一样工作(它的实现可能会有所不同,并且可以扩展,因为处理文件系统与处理网络非常不同)。