2

有没有办法用 RequireJS 动态解析路径?例如,是否可以配置它,如果我这样做

require(['mymodule'], function(mod){ });

我的某种函数将被调用,"mymodule"作为参数传递,并且我从中返回的值被 Require 用作使用的路径mymodule


我确实知道 Require 在路径解析方面有一些很棒的配置约定,而且我也知道可以手动配置路径。但是现在我正在尝试将 RequireJS 添加到一个没有考虑 Require 的旧项目中,所以我想看看我的所有选项是什么。

4

1 回答 1

2

实现加载器插件可能会为您提供最好的服务。

不确定这对你来说是否有问题,但这意味着你的 require 语法会变成这样:

require(['myplugin!mymodule'], function(mod){ });

您将使用的具体方法是normalize

调用 normalize 来规范化用于标识资源的名称。一些资源可以使用相对路径,并且需要标准化为完整路径。使用以下参数调用 normalize:

编辑:我看到插件 wiki上列出了一个替换插件,听起来与您尝试做的类似。它只使用方法,所以显然我上面所说的方法并不是一揽子规则。loadnormalize

如果路径是真正动态的,这将无济于事,但如果您只需要修改遗留脚本返回到您的模块的方式(例如,采用两个不同的全局变量并将它们放在不同的顶级全局变量下),您可能还可以考虑在shim 配置选项init中使用钩子

编辑 2:在这个问题中发布了一些相关的技巧:Configuring RequireJS to load from multiple CDNs

于 2013-08-06T16:38:59.880 回答