Засунуть код всех плагинов в один файл?

К сайту подключены плагины:
<script src="site.ru/js/popper.min.js"></script>
<script src="site.ru/js/jquery-ui.min.js"></script>
<script src="site.ru/js/noty.min.js"></script>
<script src="site.ru/js/bootstrap.min.js"></script>
<script src="site.ru/js/sb-admin-2.js"></script>
<script src="site.ru/js/main.js"></script>
<script src="site.ru/js/jquery.selectric.js"></script>
<script src="site.ru/js/jquery.nicescroll.min.js"></script>
<script src="site.ru/js/owl.js"></script>
<script src="site.ru/js/sender.js"></script>


Считается ли нормальной практикой коды всех этих файлов (кроме main.js, bootstrap.js) скинуть в один файл plugins.js (плюс обфусцировать)?

Не будет ли конфликтов?
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
  1. Если Вы верстаете\подключаете скрипты под обычную вёрстку или на какую-нибудь CMS, условно Битрикс, то считается хорошей практикой собирать все подключаемые библиотеки в отдельный файл, называть его, например, libs.js или assets.js или vendors.js(приоритетный вариант), минифицировать код этого файла и уже его подключать к странице. Разумеется делается это по хорошему не вручную, а с помощью какого-нибуть таск раннера, например gulp.
  2. Если Вы знаете что за библиотеки Вы используете и предусмотрели пересечение глобальных переменных(что бывает весьма не часто), например, вызов функции $, то конфликтов быть не должно.


P.s. не забудьте, что на каждой отдельно взятой странице могут быть не нужны все библиотеки, которые Вы используете на всём сайте и подключение такого монстра сильно и бесполезно увеличит вес странице со всеми вытекающими. Поэтому, если какая то библиотека используется только на одной странице, то будет правильнее исключить её из сборки и подключить к этой странице отдельно.

В современном же, более подвинутом, фронтенде, используются инструменты сборки(Webpack) с помощью которых js код пишется в разных файлах помодульно. Сборщик строит граф зависимостей ваших js модулей и генерирует нужный файл(бандл) который и нужно подключить(или асинхронно подгружает модули по требованию - это идеальный вариант).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы