В чем разница между конфигурацией пакетов requirejs и оптимизацией с помощью модулей (т.е. нескольких модулей)? Мне кажется, что оба они производят одно и то же - вместо создания одного оптимизированного файла создается несколько оптимизированных файлов, где каждый файл имеет несколько модулей. Правильно ли я понимаю? Есть ли какое-либо преимущество использования пакетов перед набором модулей?
При оптимизации с помощью «модулей» 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, загружается в браузер?
RequireJS связывает конфигурацию и связывает с модулями
Ответы (1)
Объединение всех модулей в один файл может не подходить для всех приложений. Поскольку require JS — это загрузчик JS-модулей по запросу, некоторые модули могут не понадобиться постоянно. Разделение пакетов на отдельные пакеты в зависимости от схемы их использования может повысить эффективность приложения при загрузке.
В этом случае он создает файл с модулями "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. Для получения дополнительной информации см. этот пример файла конфигурации .