На одном проекте (Laravel 5.3 + Vue) решили отказаться от использования jQuery. Большая часть используемых библиотек работают без этой зависимости, но некоторые (например, slidebars.js и прочие изученные и боевые для UI) до сих пор тянут за собой jQuery 1.8+.
Отсюда вопрос: есть ли какие-то конверторы кода из jQuery в JavaScript? Да, знаю, можно своими руками всё переписать, но, как известно, программисты самый ленивый народ ;)
P.S. ничего нагуглить не получилось, кроме конверторов JavaScript в Coffe..
Ярослав Иванов: ну да, jQuery же просто предоставляет более укороченный вариант написания JS. То есть можно тот же css() записать как el.style и будет тоже самое на выходе. Ну кроме того, что библиотека 100+ КБ больше не нужна становится.
Александр +: если про IE 9 и ниже, то уже давно не поддерживаем совместимость с этими динозаврами. Заглушка от Яндекса помогает чуть больше, чем полностью. Плюс Метрика говорит о ничтожном проценте заходов. Так что кроссбраузерность в 2016 году? Rly?
Александр +: учитывая то, что в этих "старых браузерах" половина интернета не будет работать, подозреваю, что ответ скорее положительный. Некоторые из сервисов гугла требуют минимум IE11: https://support.google.com/a/answer/33864?hl=en Gmail, если не путаю - IE10+ и проч. Да и вообще в jquery довольно мало смысла, некоторые операции на ванилле даже быстрее пишутся, чем используя jq.
Александр +: с такой логикой — мой онлайн сервис рецептов — уж точно никогда в эти мифические "много сфер, где компы с IE6" не попадёт :)) даже теоретически с конем в сферическим вакууме. Поэтому топить за jQuery можете сколько угодно, но факт остаётся фактом — ванилька порой и лучше и трафик экономит.
Мне кажется в данном случае самым простым выходом будет написать свой облегченный аналог jquery с тем же подходом и теми же названиями методов/функций. И конвертировать ничего не надо будет, и от сторонней библиотеки избавитесь.
Например если бы вы вакуумно использовали бы только селектор, достаточно было бы этого:
Никита Полевой: Да, собственно, ничего сложного, если время есть — берём сайт youmightnotneedjquery.com и переписываем функции jQuery в ванильку JS. Для меня там всего несколько функций переписать нужно было ($.extends, $.each и ещё пару).
Special builds can be created that exclude subsets of jQuery functionality. This allows for smaller custom builds when the builder is certain that those parts of jQuery are not being used.
Any module may be excluded except for core, and selector. To exclude a module, pass its path relative to the src folder (without the .js extension).