pnpm link
Псевдоніми: ln
Робить поточний локальний пакунок доступним для всієї системи або в іншому місці.
pnpm link <dir|pkg name>
pnpm link
Параметри
pnpm link <dir>
Звʼязує пакунок з теки <dir> node_modules пакунка, з якого ви виконуєте цю команду.
Наприклад, якщо ви знаходитесь всередині
~/projects/fooі виконуєтеpnpm link ../bar, то посилання на bar буде створено уfoo/node_modules/bar.
pnpm link
Звʼязує пакунок з місця, де було виконано цю команду, з глобальним node_modules, тому на нього можна посилатися з іншого пакунка за допомогою pnpm link <pkg>. Також, якщо пакунок має поле bin, то двійкові файли пакунка стають доступними для всієї системи.
pnpm link <pkg>
Звʼязує вказаний пакунок (<pkg>) з глобальної теки node_modules з node_modules пакунка, з якого було виконано цю команду.
Приклади використання
Заміна встановленого пакунка на локальну версію
Припустімо, у вас є проєкт, який використовує пакунок foo. Ви хочете внести зміни в foo і перевірити їх у своєму проєкті. У цьому сценарії ви можете використовувати pnpm link, щоб звʼязати локальну версію foo з вашим проєктом.
cd ~/projects/foo
pnpm install # встановлює залежності foo
pnpm link # звʼязує foo глобально
cd ~/projects/my-project
pnpm link foo # звʼязує foo з поточним проєктом
Ви також можете звʼязати пакунок з теки до іншої теки, не використовуючи глобальну теку node_modules:
cd ~/projects/foo
pnpm install # встановити залежності foo
cd ~/projects/my-project
pnpm link ~/projects/foo # звʼязати foo з my-project
Додавання двійкового файлу глобально
Якщо ви розробляєте пакунок, який містить двійковий файл, наприклад, інструмент CLI, ви можете використати pnpm link, щоб зробити двійковий файл доступним для всієї системи.
Це те саме, що й використання pnpm install -g foo, але буде використано локальну версію foo замість того, щоб завантажувати її з реєстру.
Памʼятайте, що двійковий файл буде доступним, лише якщо пакунок має поле bin у своєму package.json.
cd ~/projects/foo
pnpm install # встановити залежності foo
pnpm link # звʼязати foo глобально
Яка різниця між pnpm link і використанням протоколу file:?
Коли ви використовуєте pnpm link, повʼязаний пакунок буде зʼєднано з вихідним кодом. Ви можете змінювати вихідний код повʼязаного пакунка, і ці зміни будуть відображатися у вашому проєкті. За допомогою цього методу pnpm не встановить залежності повʼязаного пакунка, вам доведеться встановити їх вручну у вихідному коді. Це може бути корисно, якщо вам потрібно використовувати певний менеджер пакунків для повʼязаного пакунка, наприклад, якщо ви хочете використовувати npm для повʼязаного пакунка, а не pnpm для вашого проєкту.
Коли ви використовуєте протокол file: у dependencies, повʼязаний пакунок жорстко звʼязується з node_modules вашого проєкту, ви можете змінювати вихідний код повʼязаного пакунка, і ці зміни буде застосовано у вашому проєкті. За допомогою цього методу pnpm також встановить залежності повʼязаного пакунка, перевизначивши node_modules повʼязаного пакунка.
При роботі з прямими залежностями рекомендується використовувати протокол file:. Це краще розвʼязує прямі залежності з залежностями проєкту, гарантуючи, що повʼязана залежність правильно використовує версії залежностей, вказані у вашому основному проєкті, що призводить до більш узгодженої та очікуваної поведінки.
| Функція | pnpm link | Протокол file: |
|---|---|---|
| Символічне посилання/Жорстке посилання | Символічне посилання | Жорстке посилання |
| Відображає зміни вихідного коду | Так | Так |
| Встановлює залежності повʼязаного пакунка | Ні (потрібне встановлення вручну) | Так (замінює node_modules повʼязаного пакунка) |
| Використання іншого менеджера пакунків для залежностей | Можливе (наприклад, використання npm для повʼязаних пакунків) | Ні, використовуватиметься pnpm |