使用requirejs处理与库路径冲突的目录路径

时间:2015-01-19 21:10:06

标签: requirejs

我很好奇是否有办法安全地使用包含requirejs配置中已定义的路径的路径。 我意识到“简单”的解决方案是确保路径不会发生冲突。这是保持词法目录命名清晰度的更多问题。

requirejs.config({
    paths: {
        backbone: 'path/to/backbone',
        underscore: 'path/to/underscore'
    }
});

所以我在配置中命名了我的路径并保持干净我希望将所有骨干特定文件存储在也称为backbone的子目录中,以便使用描述目录在逻辑上分离。

define(['backbone/models/my-model']);

如果我在声明新模型时使用以下定义,则无法使用,因为它会尝试将其读作path/to/backone.js/models/my-model有没有办法让它使用骨干目录而不是库的路径?

我已经尝试将配置中的路径命名为lib.backbonelib.underscore,但我认为requirejs要求这些不会因为库的内部工作而改变。

1 个答案:

答案 0 :(得分:0)

我知道如何解决此问题的唯一方法是为paths设置添加一个映射,该映射比弄乱路径解析的映射更精确。所以:

paths: {
    backbone: 'path/to/backbone',
    underscore: 'path/to/underscore',
    'backbone/models': 'backbone/models'
}

不幸的是,如果您需要在backbone/下覆盖其他子目录,则必须在每个子目录中添加一个新路径。