2014-02-18 5 views
0

Я использую requirejs с различными библиотеками, такими как позвоночник и jquery. Мой план состоит в том, чтобы использовать grunt для того, чтобы объединить все мои библиотеки в один файл и загрузить его один раз в файл index.html, потому что, поскольку все библиотеки нужны в любом случае, я хочу сохранить некоторый код. Поэтому вместо того, чтобы загружать jquery и позвоночник каждый раз, когда я кодирую новый вид или модель магистрали, я просто использую Backbone и jquery, поскольку он загружается в глобальную область. Единственное, что я загружаю, это мои взгляды, модели и коллекции.Интеграция текстового плагина requirejs в ядро ​​requirejs

Но текстовый плагин дает мне головную боль. Он должен быть отделен от моих конкатенированных файлов lib. Поскольку каждый раз, когда я загружаю HTML-файл с помощью «text! Blabla.html», он сначала пытается загрузить плагин text.js, прежде чем он загрузит HTML-файл. Поэтому я не могу контактировать текстовый плагин с requirejs вместе со всеми другими libs, поэтому он предварительно загружается при загрузке страницы.

Есть ли возможность интегрировать текстовый плагин в requirejs, чтобы он был «известен» в ядре по умолчанию. В противном случае у меня есть один файл lib со всеми моими библиотеками и text.js, потому что requirejs хочет асинхронно загружать его по требованию и не получать его предварительно загруженными вместе с requirejs.

Может ли кто-нибудь помочь решить эту проблему. На самом деле это не очень оптимизировано, так как теперь я вынужден иметь 2 запроса GET для загрузки моих библиотек вместо одного.

+0

[r.js] (http://requirejs.org/docs/optimization.html) решил эти проблемы, он работает с Grunt и является стандартным инструментом для конкатенации/минимизации проектов с использованием require.js. –

ответ

0

Nikos правильно указал в своем комментарии, что вы хотите использовать для этого r.js. В проектах, где все файлы, загруженные с text!, известны во время оптимизации, вы можете иметь r.js файлы, загруженные text!, в оптимизированные пакеты, а также заменить плагин text! заглушкой.

+0

Я сделал это, это просто конкатенация в одну, но это НЕ работает. text.js обернут внутри вызова define, поэтому его нужно загрузить с требованием, но я хочу интегрировать его в require js. concat не работает. – NovumCoder

+0

На мгновение забыл, что RequireJS будет жаловаться на анонимное определение. Если вы не используете RequireJS, это немного сложнее, чем 'cat', потому что вам нужно изменить вызов' define', чтобы первый параметр был именем определенного модуля. Это непросто сделать, но это сложнее, чем 'cat'. И если вы собираетесь это сделать, вы можете просто использовать 'r.js', который будет делать это автоматически. Первая часть моего ответа по-прежнему верна. – Louis

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