Как использовать пакеты с require.js - PullRequest
0 голосов
/ 17 марта 2012

Я пытаюсь использовать require.js для загрузки js-скриптов, просто используя firebug console.

Если я попробую следующий код, он будет работать:

var script = document.createElement("script");
script.src = "http://127.0.0.1/~myName/myPublic/js/lib/require.js";
document.body.appendChild(script);

setTimeout(function() {
    require(["lib/jquery-1.7.1"], function() {
        console.log("test: ", $.fn); // **** it gives me the expected result *****
    });
}, 1000);

Теперь я хотел бы загрузить все js-файлы, имеющиеся в http://127.0.0.1/~myName/myPublic/js/lib/

setTimeout(function() {
    require.config({
        "packages": ["lib"]
    });
    require(["lib"], function() {
        console.log("test: ", $.fn);
    });
}, 1000);

но я получаю следующую ошибку:

 Load timeout for modules: lib http://requirejs.org/docs/errors.html#timeout

Что не так с кодом, использующим require.conf?

P.S .: Я запускаю код с http://127.0.0.1/~myName/myPublic/js/

1 Ответ

0 голосов
/ 17 марта 2012

Раньше я никогда не использовал require.js, но что-то бросилось в глаза - откуда на стороне клиента require.js узнает, что нужно получить каждый файл * .js в вашем каталоге?

Глядя на документацию, похоже, что require.js автоматически загружает "main.js", если вы указываете пакет. Таким образом, он будет искать http://127.0.0.1/~myName/myPublic/js/lib/main.js. Кроме того, согласно вашей конфигурации, он может дополнительно искать http://127.0.0.1/~myName/myPublic/js/lib/lib.js

Если вы действительно хотите посмотреть, как это работает, попробуйте установить анализатор пакетов, например wireshark или charles. Посмотрите, какие запросы клиент (браузер) делает для поиска файлов javascript.

К сожалению, я не знаю, как исправить ваш конфиг - документация для require.js для пакетов, похоже, неверна, или я просто не правильно ее выполняю.

...