0

我有一个正在使用的工作应用程序requirejs,我正在尝试对其进行优化。我分两步启动应用程序:

首先我从一个设置文件开始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在我进行第二次 require 调用时将它们放在里面?
2)我是否需要第一个要求,因为我需要所有文件,然后触发一个“文件”(介绍),这又需要一切?
3) 如何使 intro.js 中的对象可用?假设我需要i18next里面的对象intro.js来做一些手动翻译。我是否在垫片中导出并通过我的两个要求?

感谢您的一些见解!

4

0 回答 0