pnpm install

Псевдоніми: i

pnpm install використовується для встановлення всіх залежностей проєкту.

Large package downloads use temporary disk space to keep memory usage bounded. Temporary download files are removed after extraction or a failed download. Package manifests and archive metadata that need buffering are limited to 64 MiB.

У середовищі CI встановлення не вдається, якщо файл блокування присутній, але потребує оновлення. To allow lockfile updates in CI, run pnpm install --no-frozen-lockfile.

У робочому просторі, pnpm install встановлює всі залежності в усіх проєктах. If you want to disable this behavior, set the recursiveInstall setting to false.

Changes to a workspace package's bin field are linked into its dependents' node_modules/.bin on the next install, even with --frozen-lockfile and an unchanged lockfile.

TL;DR#

Команда Значення
pnpm i --offline Встановити оффлайн, тільки зі сховища
pnpm i --frozen-lockfile pnpm-lock.yaml не буде змінено
pnpm i --lockfile-only Оновити тільки pnpm-lock.yaml
pnpm i --dry-run Попередній перегляд змін без запису

Параметри фільтрації залежностей#

За відсутності файлу блокування pnpm має створити його, і він має бути узгодженим незалежно від фільтрації залежностей, тому запуск pnpm install --prod у теці без файлу блокування все одно призведе до розвʼязання залежностей dev, а якщо розвʼязання буде невдалим, то виникне помилка. Єдиним винятком з цього правила є залежності link:.

Без --frozen-lockfile pnpm перевірятиме застарілу інформацію з залежностей file:, тому запуск pnpm install --prod без --frozen-lockfile у середовищі, де ціль file: було видалено, призведе до помилки.

--prod, -P#

  • Стандартно: false
  • Тип: Boolean

If true, pnpm will not install any package listed in devDependencies and will remove those insofar they were already installed. Якщо false, pnpm встановить усі пакунки, з devDependencies та dependencies.

--dev, -D#

Only devDependencies are installed and dependencies are removed insofar they were already installed.

--no-optional#

optionalDependencies не буде встановлено.

--no-runtime#

Додано у: v11.1.0

Skip installing runtime entries (e.g. Node.js downloaded via devEngines.runtime). Файл блокування залишається без змін, тому «заморожені» встановлення все ще перевіряються на коректність; пропускаються лише завантаження під час виконання та компіляція з бінарними файлами.

Це корисно в матрицях CI, де середовище виконання надається ззовні (наприклад, через pnpm runtime -g set node <version>) перед запуском pnpm install.

This can also be set with runtime: false in pnpm-workspace.yaml.

Параметри#

--force#

Примусове перевстановлення залежностей: перезавантаження пакунків, змінених у сховищі, перестворення файлу блокування та/або теки модулів, створених несумісною версією pnpm. Встановить усі optionalDependencies, навіть якщо вони не задовольняють поточному оточенню (cpu, os, arch).

Since v11.28.0, set forceIgnoresPlatform to false to keep skipping optional dependencies whose os, cpu, or libc do not match the host under --force.

--offline#

  • Стандартно: false
  • Тип: Boolean

Якщо true, pnpm буде використовувати тільки пакунки, які вже доступні в сховищі. Якщо пакунок не буде знайдено локально, встановлення завершиться невдачею.

--prefer-offline#

  • Стандартно: false
  • Тип: Boolean

Якщо true, то перевірку свіжості кешованих даних буде пропущено, але дані, яких бракує буде запитано з сервера. Щоб примусово увімкнути офлайн режим, використовуйте --offline.

--no-lockfile#

Не читати та не генерувати файл pnpm-lock.yaml.

--lockfile-only#

  • Стандартно: false
  • Тип: Boolean

При використанні, оновлює тільки pnpm-lock.yaml і package.json. До теки node_modules нічого не буде записано.

--dry-run#

Додано у: v11.8.0

Виконує повне визначення залежностей та повідомляє, що зміниться під час реальної інсталяції, не записуючи нічого на диск. No lockfile, manifest, or node_modules changes are saved.

Пробний запуск завершується з кодом 0, навіть якщо повідомляється, що під час реальної інсталяції файл блокування буде оновлено.

--dry-run cannot be used with a configured pnpr server, because that install path resolves and links through the server.

--fix-lockfile#

Автоматично виправити пошкоджені записи файлу блокування.

--update-checksums#

Додано у: v11.4.0

Refresh the locked tarball integrity values from what the registry currently serves, when a downloaded tarball's hash doesn't match the integrity recorded in pnpm-lock.yaml.

By default, since v11.4.0, an integrity mismatch is a hard failure: pnpm install exits with ERR_PNPM_TARBALL_INTEGRITY rather than silently re-resolving from the registry and overwriting the locked integrity. Це захищає проєкти, які поширюють зафіксований файл блокування, від компрометованого реєстру, проксі-сервера або перевиданої версії, що замінює вміст на чистій машині на такий, що контролюється зловмисником.

--update-checksums is the narrowly-scoped opt-in for the legitimate case (e.g. a registry rewrote its tarballs and you've verified the new bytes are correct). Коли оминання вступає в дію, на екрані все одно з’являється попередження, щоб цю операцію можна було перевірити.

--force and pnpm update deliberately do not bypass the integrity check. --frozen-lockfile is unchanged, and --fix-lockfile keeps its documented purpose (filling in missing lockfile entries) and is also not a bypass.

--frozen-lockfile#

  • Стандартно:
    • Для не-CI: false
    • Для CI: true, якщо присутній файл блокування
  • Тип: Boolean

Якщо true, pnpm не генерує файл блокування та не виконує інсталяцію, якщо файл блокування не синхронізований з маніфестом / потрібне оновлення або файл блокування відсутній.

Цей параметр стандартно дорівнює true в CI середовищах. pnpm detects a CI environment with the ci-info package. Set CI=false to turn detection off.

--no-frozen-lockfile#

Allows lockfile updates during installation. This is the inverse of --frozen-lockfile.

--merge-git-branch-lockfiles#

Обʼєднання всіх файлів блокування гілок git. [Читайте більше про файли блокування гілок git.](.. /git_branch_lockfiles)

--reporter=<name>#

  • Стандартно:
    • Для TTY stdout: default
    • Для non-TTY stdout: append-only
  • Тип: default, append-only, ndjson, silent

Дозволяє вибрати репортера, який записуватиме у термінал налагоджувальну інформацію про хід встановлення.

  • silent — у консоль не виводиться жодних даних, навіть фатальних помилок
  • default — стандартний репортер, коли stdout є TTY
  • append-only — результат завжди додається в кінець. Жодні маніпуляції з курсором не виконуються
  • ndjson — найдокладніший репортер. Виводить всі журнали в форматі ndjson

Якщо ви хочете змінити тип інформації, що виводиться, скористайтеся параметром loglevel.

--shamefully-hoist#

  • Стандартно: false
  • Тип: Boolean

Створює пласку структуру node_modules, подібну до структури npm або yarn. ПОПЕРЕДЖЕННЯ: це вкрай не рекомендується.

--ignore-scripts#

  • Стандартно: false
  • Тип: Boolean

Не виконувати будь-які скрипти, визначені в package.json проєкту та його залежностях.

--filter <package_selector>#

Читайте більше про фільтрування.

--resolution-only#

Перезапускає вирішення: корисно для виводу проблем із прямою залежністю.

інформація

To list peer dependency issues without re-running resolution, use pnpm peers check. It reads them from the lockfile.

--cpu=<name>#

Додано у: v10.14.0

Перевизначити архітектуру CPU нативних модулів для встановлення. Прийнятні значення такі самі, як поле cpu у файлі package.json, яке походить із process.arch.

--os=<name>#

Додано у: v10.14.0

Перевизначити OS нативних модулів для встановлення. Прийнятні значення такі самі, як поле os у файлі package.json, яке походить із process.platform.

--libc=<name>#

Додано у: v10.14.0

Перевизначити libc нативних модулів для встановлення. Прийнятні значення такі самі, як поле libc у файлі package.json.