javascript - 我如何告诉 RequireJS 在子目录中查找某些模块?

标签 javascript jquery requirejs rjs

我不确定这是否可行,我尝试过使用通配符 *paths配置。

我想加载名为 jquery/* 的请求模块来自子目录 libs/jquery/src ,但应加载与 baseUrl 相关的其他文件。这是我尝试过的:

({
    baseUrl: ".",
    name: "main",
    out: "main.build.js",
    paths: {
        "jquery/*": "libs/jquery/src"
    }
})

这是否可能,无论怎样?

示例:

require([
    "jquery/ajax.js",
    "view/table.js"
], function(tableView){

    var t = new tableView;

    return {
        tableView: tableView
    };

});

将加载jquery/ajax.js来自./libs/jquery/src/ajax.jsview/table.js来自./view/table.js .

编辑

我也尝试过这个paths配置:

paths: {
    "jquery": "libs/jquery/src"
}

在这两种情况下我都会收到此错误:Error: Error: ENOENT, no such file or directory 'Development/rjs/jquery/ajax.js'而预期的查看路径是 Development/rjs/libs/jquery/src/ajax.js

最佳答案

没有实际的模式匹配。但是,RequireJS 可以匹配路径的开头,将其替换为其他内容,因此您可以这样做:

paths: {
    "jquery": "libs/jquery/src"
}

有了这个,那么如果你这样做:

require(["jquery/foo"], ...);

RequireJS 将寻找libs/jquery/src/foo.js。当然,如果您碰巧想要将整个 jQuery 作为 jquery 加载,这将是有问题的。

如果您将扩展放入依赖项中,这将不起作用。您必须从模块名称中删除 .js,否则 RequireJS 会将该名称视为文字路径,并且不会经过 path

关于javascript - 我如何告诉 RequireJS 在子目录中查找某些模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22674653/

相关文章:

jquery - 拖动它,放下它,然后再次拖动它,将其放回到原始位置

javascript - 在backbone.js中的两个 View 上访问集合

javascript - JS 作为 RequireJS 中的单个 JavaScript 文件

php - 来自 PHP 的 JSON 对象值

javascript - 如何在 Vue 中循环遍历数组,使其次数为项目数量的一半?

java - 压缩和解压缩文本从 html 到服务器,反之亦然

javascript - 未捕获的类型错误 : Cannot read property 'click' of null

javascript - 使用 jquery 计算空或非空 TD

jquery - stopPropagation() 阻止子级 onClick 函数

javascript - requireJS - 使用 ajax 请求