Перейти до основного змісту
Версія: Next

Підтримувані джерела пакунків

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`].

Локальна файлова система

Існує два способи встановлення з локальної файлової системи:

  1. з файлу tar-архіву (.tar, .tar.gz, or .tgz)
  2. з теки

Приклади:

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.