Javascript 如何优化requireJS应用程序设置?

Javascript 如何优化requireJS应用程序设置?,javascript,jquery,requirejs,Javascript,Jquery,Requirejs,我有一个使用requirejs的工作应用程序,我正在尝试优化它。我将分两步启动该应用程序: 首先,我从一个安装文件setup.js开始,我从页面源代码调用该文件: <script data-main="../js/setup" src="../js/l/require/require.js"></script> 这将“触发”我的应用程序控制器intro.js,如下所示: define([], function () { 'use strict'; va

我有一个使用
requirejs
的工作应用程序,我正在尝试优化它。我将分两步启动该应用程序:

首先,我从一个安装文件
setup.js
开始,我从页面源代码调用该文件:

<script data-main="../js/setup" src="../js/l/require/require.js"></script>
这将“触发”我的应用程序控制器
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()
。当我进行第二次require调用时,我是需要那里的参数,还是应该将它们放在
intro.js
中?
2) 我需要第一个require吗?因为我需要所有文件,然后触发一个“文件”(intro),它再次需要所有文件?
3) 如何在intro.js中提供对象?假设我需要
intro.js
中的
i18next
对象来进行一些手动翻译。我是否在垫片中导出并通过两个垫片传递


谢谢你的一些见解

您是否考虑过拆分库配置部分和站点的实际引导?您可以将requirejs数据main指向包含所有路径的lib.js。然后,您可以拥有专门针对手头站点的任何setup.js。关注点的分离还将提高库模块的可维护性,并且不会用应用程序逻辑对它们进行太多的处理。因此,您的意思是
数据主
应该包括requireJS“config”,而my
intro.js
的“site handler”应该用单独的
标记调用?是的,尽管我认为配置是一个默认的重写。因此,您的“lib.js”应该具有尽可能少的配置,因为所有库都有到lib.js的相对路径,并且使用的所有库级配置都应该独立于应用程序。由于库是相对于调用的数据主url的,所以不需要定义路径。如果将jquery.js放在libs.js旁边,则可以在任何地方使用require(['jquery'])。此外,intro.js不需要是define(),但可以是特定功能所需模块的require()。
define([], function () {
    'use strict';
     var start = function () {
        require(['overrides','jquery','mobile','multiview','respond','i18next'], 
            function () {
                // stuff
            }
        ); // end require
     } // end start
     return {
        "start": start
     };
 });