pnpm link
Aliases: ln
Робить поточний локальний пакунок доступним для всієї системи або в іншому місці.
pnpm link <dir|pkg name>
pnpm link
Параметри
pnpm link <dir>
Звʼязує пакунок з теки <dir> node_modules пакунка, з якого ви виконуєте цю команду.
For example, if you are inside
~/projects/fooand you executepnpm link ../bar, then a link tobarwill be created infoo/node_modules/bar.
pnpm link
Звʼязує пакунок з місця, де було виконано цю команду, з глобальним node_modules, тому на нього можна посилатися з іншого пакунка за допомогою pnpm link <pkg>. Also if the package has a bin field, then the package's binaries become available system-wide.
pnpm link <pkg>
Звʼязує вказаний пакунок (<pkg>) з глобальної теки node_modules з node_modules пакунка, з якого було виконано цю команду.
Приклади використання
Заміна встановленого пакунка на локальну версію
Let's say you have a project that uses foo package. You want to make changes to foo and test them in your project. У цьому сценарії ви можете використовувати 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, щоб зробити двійковий файл доступним для всієї системи.
This is the same as using pnpm install -g foo, but it will use the local version of foo instead of downloading it from the registry.
Remember that the binary will be available only if the package has a bin field in its package.json.
cd ~/projects/foo
pnpm install # встановити залежності foo
pnpm link # звʼязати foo глобально
What's the difference between pnpm link and using the file: protocol?
When you use pnpm link, the linked package is symlinked from the source code. Ви можете змінювати вихідний код повʼязаного пакунка, і ці зміни будуть відображатися у вашому проєкті. За допомогою цього методу pnpm не встановить залежності повʼязаного пакунка, вам доведеться встановити їх вручну у вихідному коді. This may be useful when you have to use a specific package manager for the linked package, for example, if you want to use npm for the linked package, but pnpm for your project.
When you use the file: protocol in dependencies, the linked package is hard-linked to your project node_modules, you can modify the source code of the linked package, and the changes will be reflected in your project. With this method pnpm will also install the dependencies of the linked package, overriding the node_modules of the linked package.
When dealing with peer dependencies it is recommended to use the file: protocol. Це краще розвʼязує прямі залежності з залежностями проєкту, гарантуючи, що повʼязана залежність правильно використовує версії залежностей, вказані у вашому основному проєкті, що призводить до більш узгодженої та очікуваної поведінки.
| Функція | pnpm link | file: Protocol |
|---|---|---|
| Символічне посилання/Жорстке посилання | Символічне посилання | Жорстке посилання |
| Відображає зміни вихідного коду | Так | Так |
| Встановлює залежності повʼязаного пакунка | Ні (потрібне встановлення вручну) | Yes (overrides node_modules of the linked package) |
| Використання іншого менеджера пакунків для залежностей | Possible (e.g., use npm for linked pkg) | Ні, використовуватиметься pnpm |