Менеджеры пакетов: bower, npm, yarn

Подумала, а  почему бы мне не рассказать как я использую менеджеры пакетов bower и npm?

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

Каждый раз, когда я клонирую себе на компьютер репозиторий с проектом, над которым предстоит какая-либо работа, то для того, чтобы получить все необходимые для работы скрипты, я выполняю команды:

bower install

npm install

Что происходит? В соответствии с содержимым bower.json и
package.json  из интернета  подтягиваются все прописанные в этих файлах пакеты. Помещаются они в автоматически созданные в процессе папки bower_components и node_components.

Т.е. на удаленном репозитории даже не нужно хранить кучу библиотек — каждый разработчик их себе просто подгружает на компьютер.

Если для работы понадобился какой-либо новый пакет, или другая версия, то после подгрузки его в локальный репозиторий в файл bower.json/package.json обязательно вносятся изменения. Т.е. прописываем название пакета и его версию, чтобы при последующей установке пакетов новый тоже был установлен.
Или же просто при установке пишем так:
bower install package_name —save.
Благодаря ключевому слову —save изменения в файл package.json добавятся автоматически.

Зачем нужно два менеджера? На самом деле, если у вас есть npm, то вероятно bower вам уже особо не нужен. Однако,  npm считается менеджер серверных пакетов js, а bower — менеджером клиентских пакетов. Так что если нужно разделение, то использование обоих менеджеров понятно.
Так, например,  jquery логично загрузить через bower, а разные gulp, karma через npm.

Но совсем недавно общественности был представлен новый менеджер пакетов yarn. Разработчики постарались посредством создания этой реализации решить проблемы, которые возникали с npm.

А теперь я расскажу про проблему, с которой столкнулась при попытке установить через bower пакеты, которые должны были подгрузиться по ssh (это протокол с повышенной безопасностью).
Команда bower install у меня не работала, так как нужны были права к некоторым файлам на компьютере. Ошибка вылезала вида:

Error: EACCES: permission denied, open ‘/Users/mySystem/.config/configstore/bower-github.json’
You don’t have access to this file.

Но мне было лень менять им права, ведь консоль подсказывала и более простой способ — использовать sudo с —allow-root.

В общем, команду я вводила всегда:
sudo bower install —allow-root.

И все было прекрасно, пока мне не попался bower.json с подгрузкой файлов через ssh. После долгих мучений и гаданий почему мне отказывают в доступе на получение этих файлов, хотя мой публичный ключ лежит где надо, я таки догадалась что проблема у меня «дома». Поменяла права и с помощью bower install все прекрасно установилось.
В общем, не ленитесь 🙂

А вот и список на почитать:
Why use Bower when there is npm?
Все рушится
5 things you can do with Yarn
Using Bower with Yarn

Хотите быть в курсе новых статей?