Підтримувані джерела пакунків
pnpm підтримує встановлення пакунків з різних джерел. Ці джерела поділені на дві категорії: надійні джерела та екзотичні джерела.
Екзотичні джерела (такі як репозиторії Git або прямі URL-адреси tar-архівів) можуть створювати ризики для ланцюга постачання, якщо їх використовують перехідні залежності. Ви можете запобігти використанню екзотичних джерел перехідними залежностями, встановивши для blockExoticSubdeps значення true.
Надійні джерела#
Надійні джерела вважаються безпечними для прямих і перехідних залежностей.
Реєстр npm#
Стандартно pnpm add package-name встановить останню версію package-name з npm реєстру.
Якщо команда виконується в робочій області, команда спочатку спробує перевірити, чи інші проєкти у робочій області використовують вказаний пакунок. Якщо так, буде встановлено вже використаний діапазон версій.
Ви також можете встановити пакунки використовуючи:
- теґ:
pnpm add express@nightly - версію:
pnpm add express@1.0.0 - діапазон версій:
pnpm add express@2 react@">=0.1.0 <0.2.0"
Реєстр JSR#
Додано у: v10.9.0
Щоб встановити пакунки з реєстру JSR, використовуйте префікс протоколу jsr::
pnpm add jsr:@hono/hono
pnpm add jsr:@hono/hono@4
pnpm add jsr:@hono/hono@latest
Це працює так само як встановлення з реєстру npm, але вказує pnpm натомість отримати пакунок з JSR.
Робочий простір#
Зауважте, що під час додавання залежностей та роботи у [робочому просторі] пакунки буде встановлено з налаштованих джерел, залежно від того, чи встановлено параметр [linkWorkspacePackages], та використання [workspace: range protocol`].
Локальна файлова система#
Існує два способи встановлення з локальної файлової системи:
- з файлу tar-архіву (
.tar,.tar.gz, or.tgz) - з теки
Приклади:
pnpm add ./package.tar.gz
pnpm add ./some-directory
Коли ви встановлюєте з теки, симлінк буде створено у node_modules поточного проєкту, тому це те саме, що й запуск pnpm link.
Екзотичні джерела#
Екзотичні джерела корисні для розробки, але можуть створювати ризики для ланцюга постачання, якщо їх використовувати перехідними залежностями.
Віддалені архіви#
Аргументом має бути URL-адреса, яка починається з "http://" або "https://".
Приклад:
pnpm add https://github.com/indexzero/forever/tarball/v0.5.6
Репозиторій Git#
pnpm add <git remote url>
Встановлює пакунок з хостингу Git-провайдера, клонуючи його за допомогою Git.
Ви можете встановити пакунок з Git використовуючи:
- Останній коміт зі стандартної гілки:
pnpm add kevva/is-positive
- Git хеш коміту:
pnpm add kevva/is-positive#97edff6f525f192a3f83cea1944765f769ae2678
- Гілку Git:
pnpm add kevva/is-positive#master
- Гілку Git відносно refs:
pnpm add zkochan/is-negative#heads/canary
- Теґ Git:
pnpm add zkochan/is-negative#2.0.1
- Теґ Git з V-префіксом:
pnpm add andreineculau/npm-publish-git#v0.0.7
Встановлення з репозиторію Git з використанням semver#
Ви можете вказати версію (діапазон) для встановлення за допомогою параметра semver:. Наприклад:
- Конкретна версія:
pnpm add zkochan/is-negative#semver:1.0.0
- Конкретна версія з V-префіксом:
pnpm add andreineculau/npm-publish-git#semver:v0.0.7
- Діапазон версій:
pnpm add kevva/is-positive#semver:^2.0.0
- Діапазон версій з префіксом V:
pnpm add andreineculau/npm-publish-git#semver:<=v0.0.7
Встановлення з вкладених тек репозиторію Git#
Ви також можете встановити лише вкладену теку з Git-хостингу монорепо за допомогою параметра path:. Наприклад:
pnpm add RexSkz/test-git-subfolder-fetch#path:/packages/simple-react-app
Встановлення з репозиторію Git з використанням повного URL#
Якщо ви хочете бути точнішими або використовуєте альтернативний хостинг Git, ви можете вказати повну URL-адресу Git:
# git+ssh
pnpm add git+ssh://git@github.com:zkochan/is-negative.git#2.0.1
# https
pnpm add https://github.com/zkochan/is-negative.git#2.0.1
Встановлення з Git-репозиторію з використанням короткого коду хостинг-провайдера#
Ви можете використовувати скорочення протоколу [провайдер]: для певних провайдерів Git:
pnpm add github:zkochan/is-negative
pnpm add bitbucket:pnpmjs/git-resolver
pnpm add gitlab:pnpm/git-resolver
Якщо [провайдер]: не вказано, стандартним значенням буде github:.
Встановлення зі сховища Git, комбінуючи різні параметри#
Можна обʼєднати кілька параметрів, розділивши їх символом &. Це може бути корисним для відгалужень монорепо:
pnpm add RexSkz/test-git-subdir-fetch.git#beta\&path:/packages/simple-react-app
Встановлюється з гілки beta і лише з вкладеної теки за адресою /packages/simple-react-app.