2017-04-04 44 views
0

我试图创建一个定制的Dojo构建,使用Dojo SDK 1.10道场1.10自定义生成

我有以下目录结构 -

app 
    build.profile.js 
    dojo 
    dijit 
    dojox 
    util 
    myapp 
    A.js 
    B.js 
    package.json 
    myapp.profile.js 

A.js和B.js都是纯AMD模块。 B是对A的依赖。

这里是我的myapp.profile.js -

var profile = (function(){ 
return { 
    resourceTags: { 
     amd : function(filename, mid) { 
      if(filename.indexOf('profile.js') != -1 && /\.js$/.test(filename)) 
       return true; 
      else return false; 
     } 
    } 
}; 
})(); 

,这里是我的myapp的package.json -

{ 
"name": "custom", 
"description": "My Application.", 
"version": "1.0", 
"keywords": ["JavaScript", "Dojo", "Toolkit", "DojoX"], 
"dojoBuild": "myapp.profile.js" 
} 

这里是我的应用A广build.profile.js -

var profile = (function(){ 
return { 
    basePath: ".", 
    releaseDir: "./build", 
    releaseName: "javascript", 
    action: "release", 
    stripConsole: "warn", 
    selectorEngine: "lite", 

    packages:[{ 
     name: "dojo", 
     location: "dojo" 
    },{ 
     name: "dijit", 
     location: "dijit" 
    },{ 
     name: "dojox", 
     location: "dojox" 
    },{ 
     name: "custom", 
     location: "myapp" 
    }], 

    layers: { 
     "dojo/dojo": { 
      include: [ "dojo/dojo", "dojo/i18n", "dojo/domReady"], 
      customBase: true, 
      boot: true 
     }, 
     "custom/custom": { 
      include: ["myapp/A"] 
     } 
    } 
}; 
})(); 

所有配置都还好,不过当我建立我得到以下错误: -

error(311) Missing dependency. module: myapp/A; dependency: myapp/B 

这里是我的A.js: -

define([ 
"dojox/mobile/Badge", 
"dijit/_Widget", 
"myapp/B", 
], function(declare, Button, Bb){ 
    return declare("A", Button, { 

}); 
}); 

这里是我的B.js: -

define([ 
"dojox/mobile/Badge", 
"dijit/_Widget" 
], function(declare, Button){ 
    return declare("B", Button, { 

}); 
}); 

是没有办法,我在我的个人资料的对象我失去了一些东西?我在这里被阻止,无法构建我的项目。

+0

尝试改变' “的myapp/B”'在A.js到' “./B ”'或'“ 定制/ B”' – barbsan

+0

哇,这为我工作,谢谢哥们。 –

+0

这两个版本都可以工作,或只有第一个版本? – barbsan

回答

0

在你有这样

{ 
    name: "custom", 
    location: "myapp" 
}], 

尽管包款,在加载模块使用的是"myapp/A"代替"custom/A"。试着改变它,让我知道它是否有效。

+0

我这样做了,还是同样的错误:( –

+0

你需要做的是在所有的地方,你试图访问你的模块。这意味着对'的myapp/B'必须'定制/ B'。 –

+0

感谢兄弟,在我的问题的解决意见我的问题,你是对的,我做了一些错误,在“图层” –