0
我使用RequireJS,併爲r.js創建了以下構建配置文件。我的主要文件是app.js,它導入了jquery,ember,handlebars和下劃線。我有另一個文件特定於我的應用程序的一個名爲change_email.js的頁面。它也輸入燼。減少RequireJS模塊之間的代碼重複
({
modules: [{
name: 'js/app',
// jQuery is included in the page
exclude: ['jquery'],
include: ['ember', 'handlebars', 'underscore']
}, {
name: 'js/change_email',
exclude: ['jquery', 'js/app']
}],
mainConfigFile: 'requirejs_config.js'
})
我RequireJS配置是這樣的:
requirejs.config({
paths: {
'jquery': 'js/lib/jquery',
'ember': 'js/lib/ember-1.0.0-rc.6.1',
'handlebars': 'js/lib/handlebars-1.0.0-rc.4',
'underscore': 'js/lib/underscore'
},
shim: {
'underscore': {
exports: '_'
},
'ember': {
deps: ['jquery', 'handlebars'],
exports: 'Ember'
},
'handlebars': {
exports: 'Handlebars'
}
}
});
我注意到,有時當我加載頁面,灰燼從app.js運行,有時它是從ember-1.0.0-rc.6.1.js
運行。我認爲這是一種競爭條件。在Ember從ember-1.0.0-rc.6.1.js
運行的情況下,已經下載了包含Ember的2個文件app.js
和ember-1.0.0-rc.6.1.js
。這似乎與直覺相反,因爲使用RequireJS的目標之一是減少下載的代碼量。
我想過要製作app.js導入,然後導出餘燼,並讓其他模塊從app.js.中導入Ember。我不太喜歡這個想法,因爲它需要我將我的進口改爲不自然的風格。
什麼是最有效的方法來刪除重複?
雖然你的問題是沒有這一項的副本,我[這裏的答案](http://stackoverflow.com/questions/18500478/dynamically-included-javascript-and-dependencies/18500559#18500559)可能會給你一個可能的解決方法。 –
app.js中目前有哪些模塊?你能打開構建的文件並列出它們嗎? – Chris