Supported package sources
pnpm supports installing packages from various sources. These sources are divided into two categories: trusted sources and exotic sources.
Exotic sources (like Git repositories or direct tarball URLs) can introduce supply chain risks when used by transitive dependencies. You can prevent transitive dependencies from using exotic sources by setting blockExoticSubdeps to true.
Trusted sources
Trusted sources are considered safe for both direct and transitive dependencies.
npm registry
pnpm add package-name will install the latest version of package-name from
the npm registry by default.
Якщо команда виконується в робочій області, команда спочатку спробує перевірити, чи інші проєкти у робочій області використовують вказаний пакунок. Якщо так, буде встановлено вже використаний діапазон версій.
Ви також можете встановити пакунки використовуючи:
- tag:
pnpm add express@nightly - version:
pnpm add express@1.0.0 - version range:
pnpm add express@2 react@">=0.1.0 <0.2.0"
JSR registry
Додано у: 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`].
Local file system
Існує два способи встановлення з локальної файлової системи:
- from a tarball file (
.tar,.tar.gz, or.tgz) - з теки
Приклади:
pnpm add ./package.tar.gz
pnpm add ./some-directory
When you install from a directory, a symlink will be created in the current
project's node_modules, so it is the same as running pnpm link.
Exotic sources
Exotic sources are useful for development but may pose supply chain risks when used by transitive dependencies.
Remote tarball
Аргументом має бути URL-адреса, яка починається з "http://" або "https://".
Приклад:
pnpm add https://github.com/indexzero/forever/tarball/v0.5.6
Git repository
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
You can specify version (range) to install using the semver: parameter. Наприклад:
- Конкретна версія:
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
You may also install just a subdirectory from a Git-hosted monorepo using the path: parameter. Наприклад:
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, комбінуючи різні параметри
It is possible to combine multiple parameters by separating them with &. Це може бути корисним для відгалужень монорепо:
pnpm add RexSkz/test-git-subdir-fetch.git#beta\&path:/packages/simple-react-app
Installs from the beta branch and only the subdirectory at /packages/simple-react-app.