RequireJS связывает конфигурацию и связывает с модулями

  1. В чем разница между конфигурацией пакетов requirejs и оптимизацией с помощью модулей (т.е. нескольких модулей)? Мне кажется, что оба они производят одно и то же - вместо создания одного оптимизированного файла создается несколько оптимизированных файлов, где каждый файл имеет несколько модулей. Правильно ли я понимаю? Есть ли какое-либо преимущество использования пакетов перед набором модулей?

  2. При оптимизации с помощью «модулей» r.js можно предоставить конфигурацию «create: true», которая создает файл, если имя модуля не является существующим модулем. Однако я не вижу, чтобы другие модули, ссылающиеся на модуль с «create: true», изменились соответствующим образом.

    "modules": [{ "name": "some/existing/Module" }, { "name": "some/non/existing/path", "create": true, "include": ["x", "y"] }]

    Как в приведенном выше случае JS-файл "some/non/existing/path.js", созданный r.js, загружается в браузер?


person Fahim Farook    schedule 15.04.2017    source источник


Ответы (1)


  1. Объединение всех модулей в один файл может не подходить для всех приложений. Поскольку require JS — это загрузчик JS-модулей по запросу, некоторые модули могут не понадобиться постоянно. Разделение пакетов на отдельные пакеты в зависимости от схемы их использования может повысить эффективность приложения при загрузке.

  2. В этом случае он создает файл с модулями "x", "y" и "some/non/existing/path" (поскольку вы не упомянули, что skipModuleInsertion является true ) в пути "некоторый/несуществующий/путь", например

define('x', [dependencies], function(){})

define('y', [dependencies], function(){})

define('some/non/existing/path', [dependencies], function(){})

Это будет загружено из файла конфигурации requirejs. Require js вставляет эти конфигурации в файл конфигурации, если вы указываете путь к файлу в пути bundlesConfigOutFile. Для получения дополнительной информации см. этот пример файла конфигурации .

person Veera Kumar    schedule 24.04.2017