Что такое npm и зачем он нужен

Что такое npm и зачем он нужен

Как подтягивать сторонние пакеты.

Node.js — платформа, с помощью которой создают серверные приложения на JavaScript. В ее основе — модульная система, которая позволяет подтягивать отдельные пакеты в приложение.

Для управления зависимостями в Node.js используют Node Package Manager (npm). Он загружает и устанавливает необходимые для проекта модули из сторонних источников.

Рассказываем, как работать с npm.

Инициализация и установка пакетов

Разработка ведется на разных устройствах, а команда может установить необходимые модули в терминале. Пакеты в таком случае подтягиваются из открытых или частных репозиториев. Найти и прочитать информацию о пакете (описание, версионность, частота внесения изменений) можно в реестре npm.

Частота скачиваний за неделю (Weekly Downloads) и количество зависимостей (Dependents) свидетельствуют о надежности пакета — чем их больше, тем чаще его используют разработчики.

Также информацию о пакете можно посмотреть с помощью команды в терминале:

npm view <package_name>

Для инициализации проекта введите npm init

Эта команда запрашивает у разработчика основную информацию о проекте и генерирует package.json на основе ответов. В этом файле хранится информация о проекте и его зависимостях.

курс по теме: Алгоритмы и структуры данных
Артем Верещака Tech Lead в Bolt
 

Этап с вопросами можно пропустить с помощью npm init -y. Пакеты загружаются командой npm install или, сокращенно, npm i. Если в вашем проекте уже есть package.json, подтянутся модули, которые в нем указаны. Если пакет не был прописан в package.json, нужно написать его название после команды:

npm install <package_name>

Пакеты можно подтягивать не только по имени, но и по ссылке:

npm install <git:// url>

В конце команд можно добавлять флаги, которые модифицируют их выполнение. Например, добавить зависимость в package.json:

npm install <package_name>-s

По умолчанию пакеты устанавливаются в директорию node_modules в папке проекта. Также доступна установка в глобальное хранилище на ПК. Например, на Windows — в папку AppData на диске с операционной системой. Для этого нужно добавить флаг:

npm install <package_name>-g

Пакеты можно обновить до последней версии с помощью команды npm update

Версионность npm

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

  • MAJOR — пакет, в котором код и логика существенно отличается от предыдущих, например, был заменен ключевой класс. Версия 3.0.0 будет существенно отличаться от 2.0.0.
  • MINOR — пакет, в который просто был добавлен новый функционал, например, 3.1.0 расширяет 3.0.0.
  • PATCH — тут только вносились патчи и фиксы. Если нам нужно будет внести фикс в 3.1.0, то мы назовем версию 3.1.1.

Чтобы посмотреть все версии пакета, нужно ввести команду:

npm view <package_name> versions

Для установки конкретной версии используется команда с указанием версии после @:

npm install <package_name>@1.0.0

Добавление флага --save-exact установит и добавит последнюю версию в package.json. Таким же способом можно откатиться до необходимой.

Скрипты и тесты

package.json содержит не только общую информацию о проекте и зависимостях, но и скрипты, которые разработчики используют для сборки приложений, запуска линтеров, тестов. Польза скриптов в том, что они позволяют не запоминать длинные последовательности команд. Скрипты находятся в разделе scripts и содержат название и сами команды:

"scripts": {
    "build": "npm run build:node && npm run build:browser",
    "build:browser": "rollup -c config/rollup.browser-config.js",
    "build:node": "rollup -c config/rollup.node-config.js",
    "clean": "git clean -fdxe node_modules",
    "lint": "eslint src/",
    "start": "node -i -e 'YAML=require(\"./dist/index.js\")'",
}

Например, скрипт lint запускает линтер для директории src. Для запуска скриптов используется команда:

npm run <script_name>

Если ваш проект содержит тесты, их можно запустить с помощью:

npm test

Если вы забыли нужную команду или доступные для нее флаги, вы можете ввести:

npm help

Также доступна документация с описанием всех команд и флагов для различных версий npm.

Ещё статьи
Платформи для волонтерів, пошук житла, корисні карти та ігри.