私は RequireJS を使用しており、r.js のビルド プロファイルは次のとおりです。私のメイン ファイルは、jquery、ember、ハンドルバー、およびアンダースコアをインポートする app.js です。change_email.js というアプリケーションのページに固有の別のファイルがあります。エンバーも輸入しています。
({
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'
}
}
});
ページをロードすると、Ember が app.js から実行される場合と .js から実行される場合があることに気付きましたember-1.0.0-rc.6.1.js
。これは競合状態だと思います。Ember を から実行した場合、Ember をember-1.0.0-rc.6.1.js
含む 2 つのファイルがダウンロードされapp.js
、ember-1.0.0-rc.6.1.js
. RequireJS を使用する目的の 1 つは、ダウンロードされるコードの量を削減することであるため、これは直感に反するように思えます。
app.js をインポートしてから ember をエクスポートし、他のモジュールで app.js から Ember をインポートすることを考えました。インポートを不自然なスタイルに変更する必要があるため、このアイデアはあまり好きではありません。
重複を削除する最も効率的な方法は何ですか?