Как включить и использовать pnpm в ServBay
pnpm
— это современный и эффективный инструмент управления пакетами для Node.js, созданный для устранения проблем, возникающих при работе с традиционными менеджерами пакетов, такими как npm
и yarn
. Благодаря использованию контентно-адресуемой файловой системы, а также жёстких и символьных ссылок, pnpm
существенно снижает использование места на диске и значительно увеличивает скорость установки зависимостей. Для разработчиков, использующих ServBay для проектов на Node.js, знание pnpm
позволяет значительно повысить эффективность управления зависимостями.
В состав пакета Node.js от ServBay входит утилита corepack
. Это экспериментальный инструмент, официально поддерживаемый Node.js, который помогает управлять версиями популярных менеджеров пакетов (таких как npm
, yarn
, pnpm
) и устанавливать требуемую версию пакета для проекта. Обычно после установки Node.js от ServBay вы можете активировать pnpm
с помощью команды corepack
.
Активация pnpm
Если команда pnpm
недоступна, вероятно, вы ещё не активировали её через corepack
. Выполните следующие шаги:
Откройте терминал.
Введите следующую команду для активации
pnpm
с помощьюcorepack
:bashcorepack enable pnpm
1Если команда выполнена успешно, обычно вывод в терминале отсутствует. Это означает, что
corepack
добавил командуpnpm
в систему.Проверьте, что
pnpm
успешно активирован и узнайте его версию:bashpnpm -v
1В результате выполнения вы увидите номер текущей версии
pnpm
, например:bash9.1.0
1Если версия отображается, значит
pnpm
готов к использованию.
Оповещение о загрузке от corepack
Во время работы с командой pnpm
вы можете увидеть сообщение подобное следующему — это значит, что corepack
загружает или обновляет нужную версию pnpm
. Это штатное поведение, позволяющее всегда получать необходимую или наиболее актуальную версию менеджера пакетов для вашего проекта.
$ pnpm -v
! Corepack is about to download https://registry.npmjs.org/pnpm/-/pnpm-9.0.6.tgz
? Do you want to continue? [Y/n]
2
3
Введите Y
и нажмите Enter, чтобы разрешить загрузку менеджеру corepack
. После завершения загрузки команда выполнится и вы увидите версию либо результат другой команды pnpm
.
Основные преимущества pnpm и примеры использования
Главная идея pnpm
заключается в эффективном управлении зависимостями. Все загрузки модулей хранятся в едином глобальном контентно-адресуемом хранилище, и каждый отдельный пакет хранится только в единственном экземпляре. При подключении зависимости к проекту pnpm
создаёт жёсткие ссылки на нужные файлы, а папка node_modules
в проекте формируется с помощью символьных ссылок, но при этом исключается проблема «призрачных зависимостей»: только явно перечисленные модули могут быть напрямую использованы в проекте.
Такой подход предоставляет ряд существенных преимуществ:
- Экономия места на диске: Разные проекты используют одни и те же файлы зависимостей без их дублирования.
- Высокая скорость установки: Как правило, нужные зависимости уже есть в глобальном хранилище — создаются только ссылки, что работает намного быстрее, чем копирование или повторная загрузка.
- Строгая структура зависимостей: Минимизируется проблема призрачных зависимостей, а управление и аудит становятся прозрачнее.
Вот несколько распространённых команд для работы с pnpm
в среде ServBay:
Предположим, ваш проект располагается в подпапке корневого каталога сайтов ServBay, например по пути /Applications/ServBay/www/my-servbay-app
.
Установка зависимостей проекта
Перейдите в каталог проекта и выполните команду pnpm install
, чтобы установить все зависимости, указанные в package.json
:
cd /Applications/ServBay/www/my-servbay-app
pnpm install
2
pnpm
проведёт проверку глобального хранилища, загрузит недостающие модули и создаст ссылки в папке node_modules
вашего проекта.
Добавление новой зависимости
Чтобы добавить в проект новый пакет, например lodash
:
pnpm add lodash
Если пакет отсутствует в глобальном хранилище, он загрузится, создадутся нужные ссылки, а файлы package.json
и pnpm-lock.yaml
обновятся автоматически.
Удаление зависимости
Удалить более ненужный пакет, например lodash
, можно командой:
pnpm remove lodash
Этот пакет будет исключён из зависимостей проекта, а файлы package.json
и pnpm-lock.yaml
обновятся.
Запуск скриптов
С помощью pnpm
можно запускать скрипты, прописанные в разделе scripts
вашего package.json
:
pnpm run dev
# либо сокращённо
pnpm dev
2
3
Выполнение команд пакетов (pnpx)
По аналогии с npx
, в pnpm
доступна команда pnpx
(или напрямую pnpm exec
) для выполнения бинарей, установленных в локальном каталоге node_modules/.bin
, без необходимости глобальной установки:
pnpm exec webpack --version
# или сокращённо
pnpx webpack --version
2
3
Итог
С помощью команды corepack enable pnpm
вы легко активируете менеджер пакетов pnpm
в своей среде Node.js под ServBay. Используя преимущества pnpm
— высокую скорость, надёжную структуру зависимостей и экономию дискового пространства — вы значительно ускоряете установку и обновление зависимостей и делаете разработку своих Node.js-проектов эффективнее. Для пользователей ServBay, стремящихся к лучшему опыту разработки, pnpm
— это инструмент, который стоит внедрить.