如何连接 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 模块组成的库。
Almond 是一小段代码,可以加载 AMD 模块,但有一些限制,在文档中有说明。 (这些限制不应该成为您尝试做的事情的问题。)in Almond's documentation 描述了执行您尝试做的事情的过程,但简而言之,您所做的是告诉 r.js
将您的代码包装在 IIFE 中,并将 Almond 包含在生成的包中。
我用 requirejs 写了一个库。现在我想构建它的分发版本,其中将所有文件连接到一个 "mylib.dist.js" 文件中。
问题:我的库也应该在非 requirejs 环境中工作。
jQuery 例如也是这样。 src
目录中的每个文件都是一个 amd 模块。在构建过程中,我们将以某种方式重组代码。为此,他们编写了自己的 build.js
文件。
那里有图书馆可以开箱即用地为我处理这个问题吗?还是我需要像 jQuery 团队一样编写自己的构建?
您可以使用 RequireJS 的构建器 r.js
并将您的代码与 Almond 结合起来创建一个文件,该文件的外部行为类似于不是由 AMD 模块组成的库。
Almond 是一小段代码,可以加载 AMD 模块,但有一些限制,在文档中有说明。 (这些限制不应该成为您尝试做的事情的问题。)in Almond's documentation 描述了执行您尝试做的事情的过程,但简而言之,您所做的是告诉 r.js
将您的代码包装在 IIFE 中,并将 Almond 包含在生成的包中。