требовать.js не загружает никаких модулей
Я пытаюсь загрузить модуль с помощью require.js, и у меня есть следующее В моем приложении.js:
require.config({
baseUrl: "js"
});
alert("hello world"); // for debugging
require(['eh2'], function(eh2) {
alert("nothing here"); // for debugging
});
Когда я запускаю свое приложение, хотя, несмотря на приложение.js загружается, модуль, который мне нужен, никогда не загружается - "hello world" выполняется, но "nothing here" не делает!
Мой тег скрипта на HTML-странице выглядит так:
<script type="text/javascript" src="js/lib/require.js" data-main="app"></script>
И eh2.js находится в папке js, и он завернут в оператор define:
define(["./screens/Screens"], function(screens) {
return {
// code here
};
});
Что я делаю не так? Это требует.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, в котором я нахожусь, или к корню, определенному в приложении.кстати, Джей-Эс?
1 ответ:
Заменить это:
define(["./screens/Screens"], function(screens) { .... });Либо с абсолютным вариантом пути:
define(["screens/Screens"], function(screens) { .... });Или использовать:
define(function(require) { var screens = require("./screens/Screens"); .... });
Из документов:
Относительные имена модулей внутри define():
Для require("./относительное имя") вызовы, которые могут произойти внутри вызова функции define (), обязательно спросите для "require" как зависимости, так что относительное имя разрешается правильно:
define(["require", "./relative/name"], function(require) { var mod = require("./relative/name"); });Или еще лучше, используйте сокращенный синтаксис, доступный для использования с переводом CommonJS модули:
define(function(require) { var mod = require("./relative/name"); });
Comments