2013-11-17 3 views
0

Я использую requirejs, так что у меня нет каждого скрипта в теге head для каждой страницы. Главным мотивом перехода на использование requirejs является то, что у нас есть плагины, такие как CodeMirror, с 15 плагинами, чтобы расширить это.using requirejs для коллекций плагинов

То, что я хочу, чтобы избежать оказывает, например:

require(["cm", "cmxml", "cmcss", "cmcodefold", "cmfoldgutter", "cmbracefold", "cmcommentfold" ....], fn); 

Я хотел бы иметь это как раз require(["cm"], fn); и автоматически включают в себя все плагины с этим. Я также хотел бы оставить плагины отдельными, поэтому объединение всех файлов в CodeMirror.js не является вариантом.

Что мне интересно, прежде чем я начну создавать свои собственные функции или модифицировать сторонний код для этого, является ли requirejs разрешать такую ​​загрузку в любом случае? Я много смотрел на документы и ничего не могу найти, но это не значит, что я не пропустил его или не документировал. Заранее спасибо.

+0

Я думаю, что лучшим способом было бы создать еще один скрипт CodeMirror, который просто требует 'require ([" cm "," cmcss "...], fn)' в нем. Затем я вызываю 'require ([" cminit "], fn)' (предполагая, что я вызываю свой файл cminit.js). – ClarkeyBoy

+0

Мне удалось получить эту работу с помощью прокладки для cminit.js - массив 'deps' просто перечисляет CodeMirror и все необходимые мне плагины, а на вкладке« Сеть »я вижу, что cminit.js загружается последним как ожидается. Поэтому я могу поместить весь код, связанный с CodeMirror в этот файл (например, инициализаторы CodeMirror и обработчики событий). Не уверен, насколько это лучше всего, но это работает :). – ClarkeyBoy

ответ

0

Ну, мне удалось получить эту работу с помощью прокладки для скрипта cminit.js - массив deps просто перечисляет все плагины для CodeMirror, которые, в свою очередь, имеют зависимость от CodeMirror, которая, в свою очередь, имеет зависимость на jQuery. Таким образом, один вызов, требуемый для cminit.js, автоматически означает, что jQuery существует.

Это работает, но я не уверен, насколько это лучшая практика. Не стесняйтесь комментировать, если у вас есть лучший способ сделать это.

Смежные вопросы