Requirejs 在js中命名模块

Requirejs 在js中命名模块,requirejs,durandal,durandal-2.0,Requirejs,Durandal,Durandal 2.0,我有一个durandal项目,我想尝试改进我在项目中使用模块的方式 我的配置如下: requirejs.config({ paths: { 'text': '../Scripts/text', 'durandal': '../Scripts/durandal', 'plugins': '../Scripts/durandal/plugins', 'transitions': '../Scripts/durandal/tran

我有一个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.
感谢

require js声明路径是相对于baseUrl的

e、 g

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

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

我认为你的main.js文件需要在App文件夹中,这些URL才能正确匹配。

谢谢。我知道这是一条相对路径。我们对utils.js文件的位置做了进一步的说明,只需删除路径条目。您在子模块中的定义是相对于应用程序文件夹的,因此应该已经起作用了。是的,我同意,其他路径是否起作用?事实上,你的外壳甚至可以加载吗?
requirejs.config({
baseUrl : "/App",
paths: {
    'text': '../Scripts/text',
    'durandal': '../Scripts/durandal',
    'plugins': '../Scripts/durandal/plugins',
    'transitions': '../Scripts/durandal/transitions',
    'shared': '../shared/'
}});