2017-04-04 52 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

感謝兄弟,在我的問題的解決意見我的問題,你是對的,我做了一些錯誤,在「圖層」 –