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”,而myintro.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
};
});