Отладка/поиск скриптов, загруженных RequireJS
Я только начал использовать RequireJS для загрузки скриптов для моей страницы, но ударил блокпост при попытке отладки проблемы используя хром.
Скажем, что у меня есть мой основной script, который опирается на две зависимости: dep1
и dep2
require(["dep1", "dep2"], function(dep1, dep2) {
//do something
});
Во время выполнения модульных тестов я замечаю, что что-то в dep1.js
работает некорректно, поэтому я открываю инструменты hrome dev для вставки точки останова, кроме...
![missing dependencies]()
... dep1.js
не существует!
Как найти исходный файл для вставки моей точки останова?!
Я уверен, что файлы загружаются при правильном запуске скриптов. Я просто не вижу их в списке источников
Ответы
Ответ 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>