Как повысить скорость разработки с помощью общедоступных функций JavaScript

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Практическое руководство по написанию лаконичного кода и повторному использованию вспомогательных функций JS в проектах.

Принятый в отрасли подход к вспомогательным/утилитным функциям заключается в следующем: для них выделяется специальный раздел, им даются специальные названия, они группируются по функциональным возможностям и критериям тесной связи, и каждая из них экспортируется/импортируется по мере необходимости.

Пока все понятно. Но утилитные функции не зависят от контекста.

Вы, конечно, собираетесь повторно использовать их в других проектах, передавать членам команды или даже делиться ими в интернете, так?

Но копирование кода из предыдущих проектов – сомнительное решение, которое не только плохо масштабируется, но и в будущем создает многочисленные проблемы с читабельностью и обслуживанием кода.

Так как же правильно делиться полезными функциями? Вот три решения, ранжированные, на мой взгляд, от худшего к лучшему.

Использование npm ни для одного из них не требуется – вы можете сделать то же самое с любым другим менеджером пакетов – yarn, chocolatey, pnpm и т. д.

1. Опубликуйте свой модуль в реестре NPM под собственной областью действия

Вот что нужно сделать:

  • Инициализируйте каталог пакета с помощью npm init, добавьте имя и описание, а также обозначьте область вашим именем пользователя.

  • Поместите вспомогательные/служебные функции в точку входа пакета (по умолчанию это будет index.js) и экспортируйте их.

  • Создайте учетную запись на веб-сайте NPM, подтвердите электронную почту, затем войдите в систему через интерфейс командной строки с логином npm.

Все готово! Опубликуйте с помощью npm publish --access=public

C базовым бесплатным аккаунтом у вас будет доступ к неограниченному количеству общедоступных пакетов, но иногда это не лучший вариант, потому что большинство корпоративных проектов, над которыми вы будете работать, не будут разработаны на основе открытого исходного кода (и даже если ваш проект с открытым исходным кодом, NPM не способствует «обнаруживаемости» кода).

Незарегистрированные пакеты NPM создавать не получится, а для создания закрытых пакетов нужен платный аккаунт. Даже в этом случае нет возможности выборочного контроля доступа или совместной работы.

2. Загрузите tar-архив по секретному URL

Менеджеры пакетов, такие как NPM, могут устанавливать архивы, полученные с предоставленного URL-адреса. Вот что нужно сделать:

  • Сначала как обычно – npm init в каталоге пакета, имя и описание пакета, информация о версии и т. д.

  • Создайте tar-архив (архив .tar) из каталога вашего пакета, с вашими функциями, находящимися в подпапке внутри него (в чем-то вроде package/).

    Вот команда (в Windows используйте Powershell):

tar cvfz FILENAME.tar.gz DIRECTORY/
  • Загружайте этот архив куда хотите – вы даже можете разместить его на своем хостинге. Вы сможете использовать любой метод контроля доступа, который вам нравится.

  • Каждый раз, когда вам в проекте понадобятся эти материалы, установите через NPM и импортируйте:

npm i your-url.com/FILENAME

Наконец-то нормальный контроль доступа! Но с подвохом – это будет полностью ваша ответственность. NPM здесь задействован только в процессе установки пакета. Этот метод позволяет создавать незарегистрированные и приватные пакеты, настраивать контроль доступа, но придется пожертвовать управлением версиями и автоматическими обновлениями.

Источник: https://habr.com/ru/company/rshb/blog/687868/


Интересные статьи

Интересные статьи

На протяжении многих лет я пристально слежу за тем, как развиваются различные проекты в области авиации в мире.Это мне интересно, и с предпринимательской и с производственной точки зрения.Думаю многие...
Врываемся с анонсом юбилейного Фестиваля 404, который пройдет 25-26 сентября в Самаре. Проводим фест уже в десятый раз и планируем мощнейше отпраздновать круглую дату ????
В этой статье я расскажу и покажу, как при помощи Helm и некоторых дополнительных инструментов построить и настроить автоматическое развертывание в Kubernetes для системы...
Согласно известной шутке все мемуары в книжных магазинах должны располагаться в разделе «Фантастика». Но в моём случае это и правда так! Давным-давно в далёкой-далёкой галактике в р...
Проблема подбора конструкторов для небольшой компании Так получилось, что любой проект в нашей компании не обходится без участия конструктора-механика и они постоянно перегружены работой. Сейчас...