Отладка/поиск скриптов, загруженных RequireJS - программирование
Подтвердить что ты не робот

Отладка/поиск скриптов, загруженных RequireJS

Я только начал использовать RequireJS для загрузки скриптов для моей страницы, но ударил блокпост при попытке отладки проблемы используя хром.

Скажем, что у меня есть мой основной script, который опирается на две зависимости: dep1 и dep2

require(["dep1", "dep2"], function(dep1, dep2) {
    //do something
});

Во время выполнения модульных тестов я замечаю, что что-то в dep1.js работает некорректно, поэтому я открываю инструменты hrome dev для вставки точки останова, кроме...

missing dependencies

... dep1.js не существует!

Как найти исходный файл для вставки моей точки останова?!

Я уверен, что файлы загружаются при правильном запуске скриптов. Я просто не вижу их в списке источников

4b9b3361

Ответ 1

Наконец понял, что проблема заключалась в том, что я использовал r.js вместо require.js. Как только я переключился, я мог видеть файлы без проблем.

В стороне, временная работа должна была вставить строку ниже в конце вставленных файлов. Это просто заставляет хром забирать файлы.

//@ sourceURL=GameWorldAction.js

Ответ 2

Вы никогда не закрываете свой массив в приведенном выше примере.

require(["dep1", "dep2", function(dep1, dep2) {
    //do something
});

Должно быть:

require(["dep1", "dep2"], function(dep1, dep2) {
    //do something
});

Изменить в ответ на обновление до вопроса:

Я предполагаю, что r.js - это файл RequireJs. Похоже, что RequireJS не загружает файлы правильно, если бы тогда файлы показывались в вашем инспекторе.

Используете ли вы атрибут data-main в тэге script для указания основного файла JS? Если да, являются ли файлы dep1 и dep2 в том же каталоге, что и основной JS файл? Возможно, вам придется указать другой baseUrl, если вы пытаетесь загрузить файлы с другого пути или домена. Вы можете изменить baseUrl, установив его в файле require.config.

<script>
  require.config({
    //path can also be a domain like "//image.mydomain.tld/jscript"
    baseUrl: "/another/path" 
  });
</script>