skip to main content

Пакетные менеджеры

js

Кратко 🔗

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

Например, многим программам нужно уметь форматировать даты. Когда мы будем писать новое приложение, то лучше взять готовую функцию форматирования дат, чем писать свою — писать своё решение дольше, его нужно тестировать и исправлять баги.

Кусочки кода, которые можно использовать в своем приложении, называют библиотеками или пакетами. Для удобной работы с ними существуют пакетные менеджеры (менеджеры зависимостей). Они помогают выбрать версию библиотеки и гарантируют безопасность.

В мире JavaScript есть два популярных менеджера зависимостей — npm и yarn. Они очень похожи по функциональности, но у каждого есть свои особенности.

npm — стандартный менеджер пакетов, поэтому будем смотреть на него.

Как пишется 🔗

Для работы с npm нужно установить Node.js.

npm хранит список установленных пакетов в файле package.json в корне проекта. Этот файл нужно создать командой:

npm init

После этого можно устанавливать библиотеки:

npm install date-fns // date-fns — это название библиотеки

Установленные библиотеки можно использовать в своем коде. Если приложение предназначено для работы с Node.js, достаточно просто импортировать пакет в коде:

// Этот код преднозначен для Node.js
const dateFns = require("date-fns")

console.log(dateFns.format(new Date(), "yyyy-MM-dd"))

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

В работе 🔗

Зависимость — библиотека, которая необходима для работы приложения.

Зависимости для разработки 🔗

В JavaScript все зависимости делятся на dependency и devDependency.

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

npm install lib_name

А вторая категория зависимостей используется только при разработке приложения. Добавляют их командой:

npm install lib_name --save-dev

Во вторую категорию обычно попадают библиотеки, которые полезны при разработке, но не нужны при работе программы. Например, системы сборки и статические анализаторы.

Хранение зависимостей 🔗

Пакеты, установленные через npm попадают в папку node_modules в проекте. Так как на основании package.json можно полностью восстановить все зависимости, обычно их не добавляют в репозиторий, и каждый разработчик должен устанавливать их самостоятельно.