Что такое…

Что такое npm — и почему одна команда тянет тысячи чужих файлов

Иллюстрация: одна коробка на складе тянет за собой десятки других

Смотри, штука, которая пугает новичков: пишешь npm install, жмёшь Enter — и в проект приезжает папка node_modules на тысячи файлов, которые ты в жизни не открывал. Откуда они? Кто их написал? И почему их так много ради одной маленькой библиотеки?

Разберёмся — потому что npm ты встретишь в первый же вечер, когда возьмёшься собирать что-то на Node.js. И понимать, что там едет, полезно и для удобства, и для безопасности.

Что такое npm в одной фразе

npm — это склад готового кода для JavaScript плюс команда, которая этот код ставит в твой проект. Расшифровывается как Node Package Manager — менеджер пакетов для Node.

Каждый кусок чужого кода на этом складе называется пакет (по сути — библиотека). Хочешь отправлять письма из приложения, крутить даты или рисовать графики — не пишешь это с нуля, а ставишь готовый пакет одной строкой.

Как это работает

Три вещи, которые стоит знать.

  • Реестр. Где-то в облаке лежит гигантский открытый склад — реестр npm, больше двух миллионов пакетов. Команда npm install имя-пакета идёт туда, скачивает нужное и кладёт в папку node_modules.
  • package.json — список покупок. В корне проекта живёт файл package.json. В нём перечислено, какие пакеты и каких версий нужны. Отдал другу проект без node_modules — он делает npm install, npm читает список и восстанавливает всё точь-в-точь.
  • Пакеты тянут пакеты. Вот откуда тысячи файлов. Ты ставишь один пакет, а он внутри опирается на десять других, те — ещё на десяток. npm тихо докачивает всю цепочку. Это зависимости зависимостей.

Ещё увидишь у версий значки вроде ^1.4.0. Это правила обновления: цифры разбиты на «большое.среднее.мелкое», и такая запись разрешает подтягивать мелкие правки, но не ломающие большие. Пока просто знай, что версии тут не случайные.

Почему это и удобно, и рискованно

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

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

Отсюда пара здоровых привычек с самого начала:

  • Не ставь пакет ради одной строчки, которую напишешь сам за минуту.
  • Смотри на пакет перед установкой: когда обновлялся, сколько его качают. Живой и популярный — безопаснее заброшенного.
  • Файлы package.json и package-lock.json держи в проекте, а node_modules — нет: её всегда можно восстановить командой npm install.

npm — это не «программирование», это логистика. Ты не пишешь код пакетов, ты решаешь, какие готовые куски впустить в проект. Половина работы разработчика сегодня — именно такой осознанный выбор.

Что делает npm install?

Читает package.json, идёт в реестр, скачивает все перечисленные пакеты вместе с их зависимостями и складывает в папку node_modules. После этого твой проект готов запускаться.

npm — это то же самое, что Node.js?

Нет, но они ходят парой. Node.js запускает JavaScript вне браузера, а npm ставится вместе с ним и достаёт для него готовые пакеты. Node — двигатель, npm — служба доставки запчастей.

Нужен ли интернет для npm install?

Для первой установки — да, пакеты качаются из реестра. Дальше npm кеширует скачанное, так что повторные установки часто проходят и без сети. Если npm install внезапно падает — почему так бывает, разбираем в отдельном материале.

npm — это суперсила и ответственность в одной команде. Понимаешь, что именно приезжает в node_modules, — и перестаёшь бояться этой папки, но начинаешь смотреть, что в неё кладёшь. А собрать первый проект, где npm работает на тебя, проще в компании того, кто объясняет на «ты».

Учись вайб-кодингу, а не просто читай о нём

Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.

Открыть приложение
Робот KODiQ

ИИ-редактор KODiQ. Пишет про вайб-кодинг и AI-инструменты простым языком — каждый день.

Все статьи →