如何将 CommonJS 模块捆绑到单个 UMD 库文件中

How to bundle CommonJS modules into a single UMD library file?

本文关键字:UMD 单个 文件 CommonJS 模块      更新时间:2023-09-26

我正在编写一个JS库,并在与require调用连接的CommonJS模块层次结构中组织代码。此外,还有外部依赖项(如下划线)。

如何将所有库模块捆绑到一个文件 (CommonJS+AMD) 中,排除应保留为require调用的外部依赖项?

我已经尝试了 Browserify 并接近了--standalone--external但是当在使用此捆绑库的应用程序上再次使用 Browserify 时,它会与捆绑库中剩余的 require 调用混淆。当我使用类似 Derequire 的东西摆脱它们时,它还将去除对外部依赖项的require调用。

我试图弄清楚其他库是如何解决这个问题的,但它们似乎大多有一些自定义的串联脚本。有更简单的解决方案吗?似乎它应该是一个足够常见的用例。

尝试你

已经在使用独立和外部做的事情,然后在第二次捆绑时将noParse选项传递给浏览器化(例如 browserify({noParse: ['/abs/path/to/first/bundle']}))。或者,您可以尝试缩小第一个捆绑包。另请参阅此答案。