如何连接 AMD 模块以便它们也能在非 AMD 环境中工作?

How to concat AMD modules so they work in non-amd environment too?

我用 requirejs 写了一个库。现在我想构建它的分发版本,其中将所有文件连接到一个 "mylib.dist.js" 文件中。 问题:我的库也应该在非 requirejs 环境中工作。 jQuery 例如也是这样。 src 目录中的每个文件都是一个 amd 模块。在构建过程中,我们将以某种方式重组代码。为此,他们编写了自己的 build.js 文件。 那里有图书馆可以开箱即用地为我处理这个问题吗?还是我需要像 jQuery 团队一样编写自己的构建?

您可以使用 RequireJS 的构建器 r.js 并将您的代码与 Almond 结合起来创建一个文件,该文件的外部行为类似于不是由 AMD 模块组成的库。

A​​lmond 是一小段代码,可以加载 AMD 模块,但有一些限制,在文档中有说明。 (这些限制不应该成为您尝试做的事情的问题。)in Almond's documentation 描述了执行您尝试做的事情的过程,但简而言之,您所做的是告诉 r.js将您的代码包装在 IIFE 中,并将 Almond 包含在生成的包中。