Что такое npm и зачем он нужен
Как подтягивать сторонние пакеты.
Node.js — платформа, с помощью которой создают серверные приложения на JavaScript. В ее основе — модульная система, которая позволяет подтягивать отдельные пакеты в приложение.
Для управления зависимостями в Node.js используют Node Package Manager (npm). Он загружает и устанавливает необходимые для проекта модули из сторонних источников.
Рассказываем, как работать с npm.
Инициализация и установка пакетов
Разработка ведется на разных устройствах, а команда может установить необходимые модули в терминале. Пакеты в таком случае подтягиваются из открытых или частных репозиториев. Найти и прочитать информацию о пакете (описание, версионность, частота внесения изменений) можно в реестре npm.
Частота скачиваний за неделю (Weekly Downloads) и количество зависимостей (Dependents) свидетельствуют о надежности пакета — чем их больше, тем чаще его используют разработчики.
Также информацию о пакете можно посмотреть с помощью команды в терминале:
npm view <package_name>
Для инициализации проекта введите npm init
Эта команда запрашивает у разработчика основную информацию о проекте и генерирует package.json на основе ответов. В этом файле хранится информация о проекте и его зависимостях.
Этап с вопросами можно пропустить с помощью 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.