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

pnpm patch <pkg>

Готує пакунок для виправлення (на основі подібної команди в Yarn).

Виконання цієї команди призведе до розпакування пакунка до тимчасової теки, призначеної для редагування за бажанням.

Once you're done with your changes, run pnpm patch-commit <path> (with <path> being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the patchedDependencies field.

Використання:

pnpm patch <pkg name>@<version>
нотатка

Якщо ви хочете змінити залежності пакунка, не використовуйте виправлення для модифікації файлу package.json пакунка. Для перевизначення залежностей використовуйте перевизначення або хук пакунка.

Параметри

--edit-dir <dir>

Пакунок, який потрібно виправити, буде розпаковано до цієї теки.

--ignore-existing

Ігнорувати наявні файли виправлень під час виправлення.

Налаштування

patchedDependencies

This field is added/updated automatically when you run pnpm patch-commit. Воно визначає патчі для залежностей за допомогою словника, де:

  • Keys: Package names with an exact version, a version range, or just the name.
  • Values: Relative paths to patch files.

Приклад:

patchedDependencies:
express@4.18.1: patches/express@4.18.1.patch

Dependencies можна виправляти за діапазоном версій. Порядок пріоритетності такий:

  1. Точні версії (найвищий пріоритет)
  2. Діапазони версій
  3. Патчі лише для імен (застосовуються до всіх версій, якщо їх не замінено)

A special case: the version range * behaves like a name-only patch but does not ignore patch failures.

Приклад:

patchedDependencies:
foo: patches/foo-1.patch
foo@^2.0.0: patches/foo-2.patch
foo@2.1.0: patches/foo-3.patch
  • patches/foo-3.patch is applied to foo@2.1.0.
  • patches/foo-2.patch applies to all foo versions matching ^2.0.0, except 2.1.0.
  • patches/foo-1.patch applies to all other foo versions.

Уникайте перекриття діапазонів версій. Якщо вам потрібно виділити якийсь піддіапазон, чітко виключіть його з ширшого діапазону.

Приклад:

patchedDependencies:
# Specialized sub-range
"foo@2.2.0-2.8.0": patches/foo.2.2.0-2.8.0.patch
# General patch, excluding the sub-range above
"foo@>=2.0.0 <2.2.0 || >2.8.0": patches/foo.gte2.patch

У більшості випадків достатньо визначити точну версію, щоб перевизначити ширший діапазон.

allowUnusedPatches

Added in: v10.7.0 (Previously named allowNonAppliedPatches)

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

When true, installation won't fail if some of the patches from the patchedDependencies field were not applied.

patchedDependencies:
express@4.18.1: patches/express@4.18.1.patch
allowUnusedPatches: true

ignorePatchFailures

Додано у: v10.7.0

  • Стандартно: undefined
  • Type: Boolean, undefined

Керує обробкою збоїв у роботі з патчами.

Поведінка:

  • undefined (default):
    • Виводить помилки, коли не вдається встановити патч із точною версією або діапазоном версій.
    • Ігнорує збої від патчів лише з іменами.
  • false: Errors out for any patch failure.
  • true: Prints a warning instead of failing when any patch cannot be applied.