Node Package Manager (npm) является основным инструментом для управления пакетами в экосистеме Node.js, позволяющим разработчикам устанавливать, обновлять и управлять зависимостями в своих проектах. Это руководство предназначено для начинающих и подробно описывает основные команды и практики работы с npm.

Установка npm

Прежде всего, npm устанавливается вместе с Node.js. Для установки Node.js и npm:

  1. Перейдите на официальный сайт Node.js.
  2. Выберите версию, рекомендованную для большинства пользователей.
  3. Скачайте и установите пакет для вашей операционной системы.

Проверить установку можно, выполнив следующие команды в командной строке:

node -v

npm -v

Эти команды покажут версии Node.js и npm соответственно, подтверждая успешную установку.

Создание нового проекта

Для начала работы с npm, создайте новую директорию для вашего проекта и инициализируйте её:

mkdir myproject

cd myproject

npm init

Команда npm init запустит процесс создания файла package.json, который содержит метаинформацию о проекте. Можно использовать npm init -y для автоматического создания файла с значениями по умолчанию.

Управление пакетами

Установка пакетов

Новый пакет устанавливается через команду:

npm install <package-name>

Это установит пакет и запишет логи о нем в package.json и package-lock.json, эти файлы отслеживают версии библиотек.

Удаление пакетов

Для исключения пакета:

npm uninstall <package-name>

Это удалит указанные пакеты и следы от них.

Работа с зависимостями

Обновление пакетов

Пакеты обновляет эта команда:

npm update

Версионирование

npm поддерживает семантическое версионирование, которое помогает управлять зависимостями. Версии в package.json могут указываться с тильдой ~ или кареткой ^, которые контролируют уровень обновлений, которые вы готовы принять (только патчи или минорные обновления соответственно).

Работа с глобальными пакетами

Установка глобальных пакетов

Для установки пакета во всю систему используется:

npm install -g <package-name>

Это полезно для инструментов командной строки, таких как gulp, webpack и других.

Список глобальных пакетов

Чтобы просмотреть список всех установленных глобально пакетов, выполните:

npm list -g --depth 0

Это отобразит все глобально установленные пакеты и их версии.

Управление кэшем npm

Очистка кэша

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

npm cache clean --force

Это полезно при возникновении проблем с установкой пакетов или при необходимости полной переустановки всех зависимостей.

Безопасность

Аудит пакетов

Инструмент предоставляет встроенный инструмент для проверки уязвимостей в зависимостях. Выполните команду:

npm audit

Это отобразит список уязвимостей и рекомендации по их устранению.

Обновление пакетов с уязвимостями

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

npm audit fix

Эта команда попытается обновить пакеты до безопасных версий.

Работа с репозиториями

Настройка приватного npm репозитория

Для управления внутренними зависимостями можно использовать приватные репозитории. Один из популярных инструментов — Verdaccio.

  • Установите Verdaccio глобально:
npm install -g verdaccio
  • Запустите Verdaccio:
verdaccio
  • Настройте npm для работы с вашим приватным репозиторием:
npm set registry http://localhost:4873/

Использование альтернативных репозиториев

Вы можете настроить npm для работы с альтернативными репозиториями. Например, чтобы использовать зеркала:

npm config set registry <registry-url>

Это может быть полезно в случае медленного соединения с основным репозиторием npm.

Расширенное использование

Конфигурация npm

npm позволяет настроить различные параметры для удобства работы. Некоторые полезные команды:

  • Установка прокси:
npm config set proxy http://proxy.company.com:8080

npm config set https-proxy http://proxy.company.com:8080
  • Изменение директории для глобальных установок:
npm config set prefix /path/to/directory

Скрипты npm

В package.json можно определить скрипты для автоматизации задач:

{

"scripts": {

"start": "node app.js",

"test": "mocha",

"build": "webpack --config webpack.config.js"

}

}

Запуск скриптов осуществляется командой npm run <script-name>.

Практические сценарии

Рассмотрим пример создания монорепозитория с использованием Lerna:

  • Установите Lerna глобально:
npm install -g lerna

Инициализируйте новый проект с Lerna:

lerna init

Добавьте пакеты и управляйте их версиями через Lerna.

Оптимизация производительности

Для ускорения установки пакетов можно использовать кэширование и параллельную установку:

  • Используйте npm ci для установки зависимостей точно по package-lock.json и пропускания этапа аудита.
  • Настройте кэширование на CI-системах, чтобы избежать повторной загрузки пакетов.

Заключение

npm — хороший инструмент для работы с Node.js. Освоение основных команд и понимание структуры проектов на Node.js позволит вам эффективно управлять вашими разработками и поддерживать их актуальность.