pnpm patch <pkg>
Готує пакунок для виправлення (на основі подібної команди в Yarn).
This command extracts the package to node_modules/.pnpm_patches/<pkg>, where <pkg> is the argument as given, such as foo or foo@1.0.0 (or the --edit-dir), a directory you can edit at will.
Once you're done with your changes, run pnpm patch-commit <path> (with <path> being the directory you received) to generate a patchfile and register it into your top-level manifest via the patchedDependencies field.
Використання:
pnpm patch <pkg name>@<version>
нотатка
To change a package's dependencies, don't use pnpm patch to modify its package.json! Use overrides or a package hook instead.
Параметри#
--edit-dir <dir>#
Пакунок, який потрібно виправити, буде розпаковано до цієї теки.
--ignore-existing#
Ігнорувати наявні файли виправлень під час виправлення.
Налаштування#
patchedDependencies#
Це поле буде додано/оновлено автоматично під час запуску pnpm patch-commit. Воно визначає патчі для залежностей за допомогою словника, де:
- Ключі: назви пакунків із точною версією, діапазоном версій або просто назвою.
- Значення: відносні шляхи до файлів виправлень.
Приклад:
patchedDependencies:
express@4.18.1: patches/express@4.18.1.patch
Dependencies можна виправляти за діапазоном версій. Порядок пріоритетності такий:
- Точні версії (найвищий пріоритет)
- Діапазони версій
- Патчі лише для імен (застосовуються до всіх версій, якщо їх не замінено)
Приклад:
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застосовується доfoo@2.1.0.patches/foo-2.patchзастосовується до всіх версій foo, що відповідають^2.0.0, крім2.1.0.patches/foo-1.patchзастосовується до всіх інших версій foo.
Уникайте перекриття діапазонів версій. Якщо вам потрібно виділити якийсь піддіапазон, чітко виключіть його з ширшого діапазону.
Приклад:
patchedDependencies:
# Конкретний піддіапазон
"foo@2.2.0-2.8.0": patches/foo.2.2.0-2.8.0.patch
# Загальний патч, за винятком вищезазначеного піддіапазону
"foo@>=2.0.0 <2.2.0 || >2.8.0": patches/foo.gte2.patch
У більшості випадків достатньо визначити точну версію, щоб перевизначити ширший діапазон.
allowUnusedPatches#
Додано у: v10.7.0 (Попередня назва allowNonAppliedPatches)
- Стандартно: false
- Тип: Boolean
Якщо true, встановлення не завершиться невдачею, якщо деякі з виправлень з поля patchedDependencies не було застосовано.
patchedDependencies:
express@4.18.1: patches/express@4.18.1.patch
allowUnusedPatches: true
нотатка
In v11, patch application failures always throw an error. The ignorePatchFailures setting has been removed. When multiple patches in a group are applied, a failure in one does not prevent the rest from being attempted; all patch errors are reported together at the end.