我目前没有在我的任何项目中使用 AMD,但我确实必须动态加载大量 javascript 文件,因为用户可以在运行时加载可能在 3rd 方站点上定义的插件。
然而,我正在研究 AMD 如何帮助我,因为我目前使用 yepnope 动态加载几乎所有资源,这工作正常,当我想加载远程插件时,我可以动态告诉 yepnope 去获取描述符,然后获取所需的文件(这是一个手卷插件系统,所以不要太担心它)。因此,该场景将使用大量本地模块,但也允许动态加载新模块。
现在根据我的理解,就 AMD 而言,您可以在文件中编写定义,然后包含一些与 AMD 兼容的加载器,并在您想要访问代码中的底层模块的任何地方(在回调中)使用您的 require 方法。现在答案可能最终变得依赖于框架,因为我相信 AMD 兼容的加载器处理映射require("some/module/name")
到some-module-name.js
或任何它,所以我假设有一个基本路径告诉加载器在哪里寻找底层文件,所以制作一个假设所有加载器都是这种情况,您如何应对想要加载远离默认路径的模块的用例?
如果这是特定于框架的,我再次道歉,并且非常乐意将问题更改为“你如何使用 CURL 等做到这一点”,但由于我对它没有 100% 的理解,我猜它会落入AMD 兼容气泡。