0

requirejs最適化しようとしている を使用して動作中のアプリケーションがあります。2 つのステップでアプリケーションを起動しています。

まずsetup.js、ページのソース コードから呼び出しているセットアップ ファイルから始めます。

<script data-main="../js/setup" src="../js/l/require/require.js"></script>

このファイルには、必要なセットアップが含まれています

var IS_LOCAL = /(:\/\/localhost|file:\/\/)/.test(document.location.href);

requirejs.config({
    waitSeconds: (IS_LOCAL ? 2 : 45),
    baseUrl: "../js",
    paths: {
        intro: 'intro',
        overrides: 'overrides',
        jquery: 'l/jquery/jquery-1.8.2.min',
        mobile: 'l/jquery-mobile/jquery-mobile-1.3pre.min',
        multiview: 'p/multiview/multiview.min',
        respond: 'p/respond/respond.min',
        i18next: 'p/i18next.min.js'
      },
  shim: {
    'overrides': { deps: ['jquery'] },
    'mobile': { deps: ['jquery'] },
    'multiview': { deps: ['jquery', 'mobile'] },
    'respond': { deps: ['jquery'] },
    'i18next': { deps: ['jquery'] }
  }
});
// launch application - works, but I'm not happy with it
requirejs('overrides','jquery','mobile','multiview','respond','i18next','intro'],
    function (overrides, $, mobile, multiview, respond, i18next, Intro) {
      'use strict';
      Intro.start(overrides, $, mobile, multiview, respond, i18next);
     }
 );

intro.jsこれは、次のようなアプリケーションコントローラーを「トリガー」します。

define([], function () {
    'use strict';
     var start = function () {
        require(['overrides','jquery','mobile','multiview','respond','i18next'], 
            function () {
                // stuff
            }
        ); // end require
     } // end start
     return {
        "start": start
     };
 });

私はまだrequireJSで自分のやり方を理解しているので、上記は正しく初期化されますが、これが最善の方法であるかどうかはわかりません. 具体的には、私は疑問に思っています:

質問:
1) setup.js ファイルで、Intro.start()多くのパラメーターを使用してトリガーしています。intro.jsそこにパラメーターが必要ですか、それとも 2 回目の require 呼び出しを行うときにそれらを内部に配置する必要がありますか?
2) すべてのファイルを要求してから、もう一度すべてを要求する「ファイル」(イントロ) をトリガーするので、最初の要求はまったく必要ですか?
3) intro.js でオブジェクトを使用できるようにするにはどうすればよいですか? 手動で翻訳を行うためにi18next内部のオブジェクトが必要だとします。intro.jsシムをエクスポートして、2 つの要件を通過しますか?

いくつかの洞察をありがとう!

4

0 に答える 0