RequireJS 依赖路径

5

我刚开始使用RequireJS。我正在设置一些路径别名,以免在我的依赖项上指定版本号,但似乎我不能将路径别名与目录别名结合使用。例如:

require.config({
    baseUrl: "/js/app", // by default load any module IDs from js/app

    paths: {
        "libs": "/some/path/to/libs",
        "jquery": "libs/jquery-1.9.0" // loads from /some/path/to/libs/jquery-1.9.0.js
    }
});

require(["jquery"], function ($) {
    $("#foo").html("bar");
});

RequireJS试图从/js/app/libs/jquery-1.9.0.js加载jQuery。

这个可行吗?或者我需要分别定义每个JS文件的路径(如果我不想删除版本号)?

2个回答

5
不,这是不可能的。
引用James Burke在此处回答类似问题的话:
路径不是可添加的--路径条目的属性名是模块ID,值是不从其他值计算出的路径。
我认为你必须单独定义每个js文件的路径,我想不到更好的方法来做这件事。

0

这应该没问题,但是require(["libs / jquery"]应该更改为require(["jquery"],因为您已在配置中定义了该别名。


很遗憾,这不起作用。我已经更新了我的问题并提供了更多细节。 - Ben Foster
你遇到了什么错误?而且,“/some/path/to/libs”是相对于你的baseUrl吗? - Nick Jonas
404错误是因为RequireJS试图加载/js/app/libs/jquery-1.9.0.js/some/path/to/libs不是相对路径。也就是说,使用相对路径也无法解决问题,例如../some/path/to/libs同样无法工作。 - Ben Foster
当使用相对路径../some/path/to/libs时,它是否尝试从相同路径加载?然后应该尝试从js/some/path/to/libs/jquery-1.9.0.js加载。还有一些事情:根据规范,我认为你应该使用define(['jquery'], function...而不是require(['jquery...。此外,RequireJS建议您将版本号保留在不同的文件(例如package.json)中以最小化配置。 - Nick Jonas
1
我已经完整阅读了RequireJS文档,但它并没有提到可以以这种方式使用路径。此外,我没有定义一个模块,这段代码是在我的main.js中执行的。 - Ben Foster

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接