Менеджеры пакетов: 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