030 Обзор NPM
Самые популярные пакетные менеджеры:
npm
- самый популярный, простой и понятный менеджерyarn
- разработанныйfacebook
менеджер. Обычно устанавливается первая версия, которая не развивается, но так же имеется и третья версияpnpm
- хранит все скачанные модули в одном месте, но имеет минус в более тяжёлой настройкеboar
Если говорить про NPM
, то мы имеем возможность загружать наши пакеты в него и скачивать для использования в отдельных приложениях. Так же имеется и приватный репозиторий.
Так же менеджер создаёт папку с частоиспользуемыми зависимостями, чтобы быстро их закидывать в наш проект
Эта команда позволяет быстро обновить npm
031 Авторизация и профиль
Далее у нас идут команды авторизации и редактирования информации нашего профиля
Таким образом мы можем залогиниться в наш профиль
А тут поменять информацию и вывести её
032 Разбор package.json
Первым делом нужно инициализировать пакет в git
и npm
И во время иннициализации npm
начально настраиваем пэкэджер
И далее мы получаем такой файлик с нашими изначальными значениями:
package.json
name
- Само имя нашего пакета, которое будет отображаться у него при скачивании и установлении зависимостейverison
- хранит в себе версию нашего пакета:- Мажорная версия проета - это breaking changes, которые конкретно меняют наш пакет и весь старый код может полететь.
- Минорные изменения - это имплементация новых фич, которые дополняют мажорную версию.
- И третья цифра - это мелкие фиксы старых багов.
description
- Кратное описание проектаscripts
- хранит в себе консольные команды, которые мы можем быстро вызватьhomepage
- тут хранится ссылка на ваш сайт с этим пакетомrepository
- тут хранится репозиторий пакетаbugs
- сюда можно обратиться для баг-репортовprivate
- тут определяется приватный пакет или нетmain
- это точка входа в пакет, и если она будет указана неправильно, то войти в приложение не получитсяbrowser
- то же самое, что и main, но если мы публикуем фронт-эндовский пакетbin
- это точка входа в приложение, если мы будем использовать его как отдельное приложение (например, CLI)os
- указываем ограничения по поддерживаемым системам. Например["win32"]
- поддерживается всё, кроме 32-ух разрядных Windowscpu
- поможет указать, какие процессоры поддерживаем или не поддерживаем (так же:"cpu": ["!arm"]
)man
- хранит в себе путь до мануала по данному пакету (["./README.md"]
)engines
- тут уже можно указать, какие версии ноды поддерживаются данным пакетомfunding
- тут указывается ссылка на сайт, где можно поддержать развитие проектаfiles
- позволяет указать, какие файлы мы можем заливать с нашим пакетом, а какие нет (стоит вместо этого использовать гитигнор и нпмигнор)
Так выглядит забитый json
наших настроек
package.json
Тут будут храниться те данные, которые мы не хотим загружать в гит
.gitignore
Тут будут храниться файлы, которые мы не хотим загружать на сайт npm
.npmignore
033 Управление зависимостями
package-lock.json
хранит в себе залоченные версии наших зависимостей. Если нам важно сохранять их, то стоит отправлять этот файл на гитхаб.
Базовые операции, которые нам нужно проводить:
И здесь отображены наши зависимости модулей:
В реальности мы буем использовать только dependencies
(для работы приложения), devDependencies
(для разработки приложения) и peerDependencies
(для написания своих плагинов к модулям)
Так выглядит работа с нужными для нас модулями:
Тут мы можем определить, какая версия модуля нам нужна будет в дальнейшем
И так же у наших установленных модулей есть свои зависимости, которые так же дополнительно нам устанавливаются. Тут нужно сказать, что не нужно на каждую свою задачу искать модуль, так как модули сильно разрастутся и нам сложно будет отследить модуль с уязвимостью или вирусом, так как от него будет много что зависеть
Папка .bin
хранит в себе бинарники вызова самой утилиты
Этот бинарник вызывается, когда мы упомянаем наш плагин в скриптах