Як активувати та використовувати pnpm у ServBay
pnpm
— це сучасний і ефективний інструмент для керування пакетами Node.js, спеціально створений для вирішення проблем, які виникають під час роботи з традиційними менеджерами пакетів (npm
, yarn
). Завдяки файловій системі з контентно-адресним зберіганням і використанню жорстких та символічних посилань, pnpm
значно зменшує зайнятість диску та пришвидшує встановлення залежностей. Для розробників, які працюють з Node.js у середовищі ServBay, опанування pnpm
дозволяє суттєво підвищити ефективність керування залежностями в проєктах.
До складу Node.js у ServBay вже інтегровано утиліту corepack
— офіційний експериментальний інструмент для керування та запуску конкретних версій менеджерів пакетів (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. Це стандартний процес для corepack, який гарантує, що у вас встановлена необхідна або найновіша версія pnpm, потрібна для вашого проєкту.
bash
$ pnpm -v
! Corepack is about to download https://registry.npmjs.org/pnpm/-/pnpm-9.0.6.tgz
? Do you want to continue? [Y/n]
1
2
3
2
3
Введіть Y
і натисніть Enter, щоб дозволити завантаження та виконання команди pnpm. Після завершення встановлення команда відпрацює й покаже версію або інший результат вашої команди pnpm.
Основні переваги pnpm та приклади використання
pnpm
спроектований для максимально ефективного керування залежностями. Усі пакети зберігаються у глобальному контентно-адресному сховищі, і кожна версія пакета завантажується лише раз. Якщо вашому проєкту потрібно підключити залежність, pnpm створює жорстке посилання з глобального сховища, а в папці node_modules
будуть символічні посилання, що формують пласку структуру. На відміну від проблеми "примарних залежностей" у npm, pnpm суворо контролює доступність модулів: посилатись можна лише на ті, що прямо оголошені у вашому проєкті.
Цей підхід дає такі ключові переваги:
- Економія дискового простору: Один і той самий пакет (та версія) використовується у різних проєктах без дублювання на диску.
- Швидке встановлення: Якщо пакети вже є у загальному сховищі, створюються лише посилання — це значно швидше, ніж завантаження чи копіювання.
- Строга структура залежностей: Відсутність "примарних залежностей" сприяє прозорості та контрольованості дерево залежностей.
Нижче наведені приклади використання pnpm у середовищі ServBay.
Уявімо, що ваш проєкт знаходиться в підпапці кореня сайтів ServBay, наприклад, /Applications/ServBay/www/my-servbay-app
.
Встановлення залежностей проєкту
Зайдіть у папку проєкту та встановіть усі залежності, перелічені у package.json
:
bash
cd /Applications/ServBay/www/my-servbay-app
pnpm install
1
2
2
pnpm
перевірить глобальне сховище, завантажить відсутні пакети та створить посилання у вашому node_modules
.
Додавання нової залежності
Щоб додати новий пакет, наприклад, lodash
:
bash
pnpm add lodash
1
Якщо у глобальному сховищі немає врахованого пакета, він завантажується, далі створюється посилання та оновлюються файли package.json
і pnpm-lock.yaml
.
Видалення залежності
Щоб видалити зайву залежність, наприклад, lodash
:
bash
pnpm remove lodash
1
Вона буде виключена з залежностей і також із файлів package.json
та pnpm-lock.yaml
.
Запуск скриптів
Через pnpm можна запускати скрипти, визначені у полі scripts
файлу package.json
:
bash
pnpm run dev
# або скорочено
pnpm dev
1
2
3
2
3
Виконання команд пакетів (pnpx)
На зразок npx
, pnpm надає pnpx
(або просто pnpm exec
) для запуску bінарників зі встановлених у проєкті пакетів (node_modules/.bin
) без необхідності їх глобальної інсталяції:
bash
pnpm exec webpack --version
# або скорочено
pnpx webpack --version
1
2
3
2
3
Підсумки
Команда corepack enable pnpm
дозволяє легко активувати pnpm у Node.js-середовищі ServBay. Використання pnpm для керування залежностями забезпечує блискавичне встановлення пакетів, підвищує ефективність розробки та економить дисковий простір. Якщо ви цінуєте сучасний та комфортний досвід розробника у ServBay, pnpm — один з найкращих виборів.