Сделайте модули модулями — целостной подсистемой, после подключения которой не нужно раскидывать по всему сайту файлы с компонентами, картинками, шаблонами и пр. Модуль, с точки зрения разработчика, должен быть прост в установке и обновлении.
Структура модуля могла бы быть такой:
vendor.module/
admin/
lib/
components/
templates/ |
Итого:
- разработчику модуля не нужно при выпуске очередного обновления, например, компонентов, писать апдейтер, который будет копировать файлы из модуля в bitrix/components/vendor;
- все ресурсы модуля находятся в модуле.
Ограничение накладывает работа со статичными ресурсами: JS, CSS, изображения и т. п. Решить это можно через менеджер статики, который будет автоматически собирать статику.