2012-01-31 5 views
0

Я использую библиотеку, которая предоставляет множество полезных функций. Он основан на jQuery, поэтому я должен включить jQuery. Обе эти библиотеки огромны по размеру, но я использую только одну функциональность в одной функции только один раз.Как настроить javascript-библиотеку на основе jQuery для моих собственных нужд?

Я собрал весь код в одном файле .js и измерил покрытие кода, используя jscoverage. Кажется, что выполнено только 13% заявлений. Это означает, что более 200 КБ имеет мертвый код.

Вот что combined.js файл выглядит следующим образом:

// jQuery code copy-pasted here 

... 

// libX code copy-pasted here 

... 

libX().doSomething(); 

Так что мои вопросы:

1) Как я могу удалить все мертвое код от этого .js файла? Я пробовал Google Closure, но тогда код не работает. Я предполагаю, что это испортило все материалы jQuery.

2) Я буду служить этому .js файл, состоящий из JQuery, другую библиотеку и мой собственный небольшой код на 3 стороны, так что я не хочу JQuery участвовать, даже в режиме noconflict. Как я могу адаптировать это к моим собственным потребностям? Возможно, замените знак доллара произвольным символом или чем-то еще?

Любая помощь приветствуется.

+0

jQuery ** есть ** JavaScript, поэтому, если Google Closure не удалось каким-то образом, это не имело никакого отношения к jQuery. – Sparky

+0

Хорошо, что Google Closure даже не работал или не принимал в качестве входных данных, если jQuery не был Javascript, а что-то еще ... Не сказал, что это ошибка jQuery, но просто компилятор Closure не работал для меня при попытке удалить мертвый код ... –

+0

Мое единственное замечание заключалось в том, что в файле jQuery нет ничего особенного или проприетарного ... это просто написано в чистом JavaScript. – Sparky

ответ

1

jquery minified маленький (< 20kb), вы можете использовать cdn, чтобы его не нужно было сканировать (и, следовательно, не повлиять на производительность), и вы, вероятно, будете использовать остальные функции jquery позднее ,

Я не понимаю этого: я буду служить этот .js файл, состоящий из JQuery, ... так что я не хочу JQuery участие

И noconfilct делает заменить знак доллара с произвольным символ вашего выбора, вот что вы хотите, не так ли?

+0

jquery-min может быть небольшим, но в другой библиотеке нет. Более того; используется только 3-4 кб в 20кб. Итак, почему я должен обслуживать дополнительные 16+ kb для каждого использования моего js-файла? Ожидается, что он будет запрошен 10k + раз в день. Что касается режима noconflict, если у какой-то третьей стороны есть другая библиотека на его странице (YUI или Prototype или что-то еще), а также решает использовать мой файл js, это может испортить вещи. –

+2

Почему? потому что он, вероятно, кэшируется на клиентском ПК, если вы используете cdn, поэтому это не повлияет на производительность, и вы сможете использовать его для остальных jquery более поздней даты. Сторонняя библиотека вычеркивает мертвый код, миниатюрируя его самостоятельно, он размещается на cdn в другом месте. Я не понимаю, что вы имеете в виду в режиме noconflict. – NimChimpsky

+0

Спасибо, но единственная причина, по которой я включил jQuery, - это то, что libX зависит от небольшой части. Я ценю вашу помощь, но, пожалуйста, не делайте никаких предположений для моей конкретной ситуации и не отвечайте на мои вопросы только для моих вопросов. –