Node Package Manager (npm) является основным инструментом для управления пакетами в экосистеме Node.js, позволяющим разработчикам устанавливать, обновлять и управлять зависимостями в своих проектах. Это руководство предназначено для начинающих и подробно описывает основные команды и практики работы с npm.
Установка npm
Прежде всего, npm устанавливается вместе с Node.js. Для установки Node.js и npm:
- Перейдите на официальный сайт Node.js.
- Выберите версию, рекомендованную для большинства пользователей.
- Скачайте и установите пакет для вашей операционной системы.
Проверить установку можно, выполнив следующие команды в командной строке:
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 позволит вам эффективно управлять вашими разработками и поддерживать их актуальность.