您不能(或至少不应该)修改每个库的源代码来告诉它它的依赖项在哪里。但是,您可以控制代码的位置。
我使用的方法是从Volo 的默认项目模板中复制的,将 RequireJS 设置baseUrl
为/lib
文件夹,以便您的库代码可以轻松找到它的依赖项,然后使用paths
配置将“app”别名到我的代码所在的任何位置,如下所示:
目录布局
/www
/js
main.js
/lib
backbone.js
backbone.marionette.js
(etc)
/app
my-code.js
view.js
main.js(或者你配置 RequireJS 的任何地方)
requirejs.config({
baseUrl: 'www/js/lib',
paths: {
app: '../app'
}
});
// Go on to load another module that contains the actual app. Example:
requirejs(['app/my-code']);
配置中的所有路径paths
都相对于baseUrl
. 为上述定义映射app
意味着当 RequireJS 加载名为app/foo的模块时,它将使用(baseUrl)/../app/foo.js:
我的代码.js
define(['backbone', 'app/view'], (Backbone, MyView) {/*...*/}