在require js中命名模块

时间:2014-04-08 13:49:23

标签: requirejs durandal durandal-2.0

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

我的配置如下:

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
         ...

所以我希望我的define回调能够按如下方式解决utils模块:

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

基本上我希望这与durandal回调一起工作。

我注意到:

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

由于

2 个答案:

答案 0 :(得分:0)

要求js docs表明路径相对于baseUrl。

例如

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

因此假设您的baseUrl与durandal默认'/ App'相同,您的配置应如下所示:

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

答案 1 :(得分:0)

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