2014-04-08 33 views
0

我有一个durandal项目,我想尝试改进我在项目中使用模块的方式。需要js的命名模块

我有以下配置:

requirejs.config({ 
    paths: { 
     'text': '../Scripts/text', 
     'durandal': '../Scripts/durandal', 
     'plugins': '../Scripts/durandal/plugins', 
     'transitions': '../Scripts/durandal/transitions', 
     'shared': 'shared' 
    } 
}); 

我已经加入了utils条目。该utils的文件夹结构如下:

main.js 
+App 
    +shared 
     -utils.js 
     -globals.js 
     ... 

所以我在定义的回调是希望能够解决utils的模块如下:

define(['shared/utils'], function(utils) { 
    //do stuff 
}); 

从本质上讲,我想这个工作直列与杜兰回调。

我注意到一个电话:

utils.js and not shared/utils.js in the web inspector. 

感谢

+0

只需删除路径条目。您在子模块中的定义与APP文件夹相关,因此应该已经可以工作。 – zewa666

回答

0

的要求JS docs状态路径是相对的baseUrl。

requirejs.config({ 
baseUrl : "/App", 
paths: { 
    'text': '../Scripts/text', 
    'durandal': '../Scripts/durandal', 
    'plugins': '../Scripts/durandal/plugins', 
    'transitions': '../Scripts/durandal/transitions' 
}}); 

所以假设你的baseUrl是一样的迪朗达尔默认“/应用程序”,你的配置应该是这样的:

requirejs.config({ 
baseUrl : "/App", 
paths: { 
    'text': '../Scripts/text', 
    'durandal': '../Scripts/durandal', 
    'plugins': '../Scripts/durandal/plugins', 
    'transitions': '../Scripts/durandal/transitions', 
    'shared': '../shared/' 
}}); 
+0

谢谢。知道这是一个相对路径。已经添加了一些关于utils.js文件的位置的进一步说明。 –

0

我认为你的main.js文件需要位于App文件夹中才能正确匹配这些网址。

+0

是的我同意,做任何其他需要的路径工作?事实上,你的shell甚至加载? –