0

私は 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.jsember-1.0.0-rc.6.1.js. RequireJS を使用する目的の 1 つは、ダウンロードされるコードの量を削減することであるため、これは直感に反するように思えます。

app.js をインポートしてから ember をエクスポートし、他のモジュールで app.js から Ember をインポートすることを考えました。インポートを不自然なスタイルに変更する必要があるため、このアイデアはあまり好きではありません。

重複を削除する最も効率的な方法は何ですか?

4

1 に答える 1