我正在尝试使用 require.js 加载模块,并且我的 app.js 中有以下内容:
require.config({
baseUrl: "js"
});
alert("hello world"); // for debugging
require(['eh2'], function(eh2) {
alert("nothing here"); // for debugging
});
但是,当我运行我的应用程序时,尽管 app.js 正在加载,但我需要的模块永远不会加载 - “hello world”会执行,但“nothing here”不会!
我在 HTML 页面中的脚本标记如下所示:
<script type="text/javascript" src="js/lib/require.js" data-main="app"></script>
而 eh2.js 位于 js 文件夹中,它被包裹在一个定义语句中:
define(["./screens/Screens"], function(screens) {
return {
// code here
};
});
我究竟做错了什么?require.js 是否在 screen.js 下加载某些子模块时静默失败,也许?
以下是 Screens 模块的代码:
define([ "screens/TitleScreen", "screens/GameScreen" ], function(titleScreen, gameScreen) {
return {
screenFuncs: {
"TitleScreen" : titleScreen.TitleScreen,
"GameScreen" : gameScreen.GameScreen,
},
buildScreen: function(data) {
var func = screenFuncs[data.type];
var screen = new func(data.params);
return screen;
},
};
});
无论如何,define 调用中的路径是否需要相对于我所在的 js 文件的当前位置,或者相对于 app.js 中定义的根?