pnpm publish
Публікує пакунок в реєстрі.
pnpm [-r] publish [<tarball|folder>] [--tag <tag>]
[--access <public|restricted>] [options]
нотатка
Починаючи з версії v11, команда pnpm publish реалізована на рівні самого pnpm і більше не делегується CLI npm. Якщо ви користуєтеся функцією, якої тепер немає, будь ласка, створіть тікет у репозиторії pnpm/pnpm. Як тимчасове рішення, ви все ще можете виконати команду pnpm pack && npm publish *.tgz.
Під час публікації пакунка у робочій області, файл LICENSE з кореня робочої області пакується разом з пакунком (якщо тільки пакунок не має власної ліцензії).
Ви можете перевизначити деякі поля перед публікацією, використовуючи поле publishConfig у package.json. Ви також можете використовувати publishConfig.directory для налаштування вкладеної теки, що публікується (зазвичай за допомогою сторонніх інструментів збірки).
При рекурсивному виконанні цієї команди (pnpm -r publish) pnpm опублікує усі пакунки, версії яких ще не було опубліковано у реєстрі.
Параметри#
--recursive, -r#
Публікує всі пакунки з робочого простору.
--json#
Показати інформацію у форматі JSON.
--tag <tag>#
Публікує. всі пакунки з вказаним теґом. Стандартно, pnpm publish оновлює теґ latest.
Наприклад:
# всередині теки пакунків foo
pnpm publish --tag next
# у проєкті, де ви хочете використовувати наступну версію foo
pnpm add foo@next
--access <public|restricted>#
Вказує реєстру, чи повинен опублікований пакунок бути загальнодоступним або обмеженим.
--no-git-checks#
Не перевіряти, чи поточна гілка є вашою гілкою для публікації, вона є чистою та актуальною з віддаленою версією.
--publish-branch <branch>#
- Стандартно: master та main
- Типи: String
Основна гілка репозиторію, яка використовується для публікації останніх змін.
--force#
Намагатись публікувати пакунки, навіть якщо їх поточну версію вже знайдено у реєстрі.
--batch#
Додано у: v11.7.0
Під час рекурсивної публікації (pnpm -r publish) надсилайте всі вибрані пакунки до реєстру одним запитом PUT /-/pnpm/v1/publish, а не окремим запитом для кожного пакунка.
Цільовий реєстр повинен реалізувати точку доступу для публікації партії (це робить pnpr); у разі, якщо реєстри цього не роблять, видається повідомлення про помилку ERR_PNPM_BATCH_PUBLISH_UNSUPPORTED. Процес обробки партії відбувається за принципом «все або нічого»: якщо хоча б один пакунок у партії не проходить перевірку, жоден із пакунків не публікується.
--skip-manifest-obfuscation#
Додано у: v11.3.0
Залишати оригінальне поле packageManager і публікувати скрипти життєвого циклу в опублікованому маніфесті, замість того щоб видаляти їх. Поле pnpm, характерне для pnpm, як і раніше, оминається.
--report-summary#
Зберегти список опублікованих пакунків у файлі pnpm-publish-summary.json. Корисно, коли для звіту про список опублікованих пакунків використовується інший інструментарій.
Приклад файлу pnpm-publish-summary.json:
{
"publishedPackages": [
{
"name": "foo",
"version": "1.0.0"
},
{
"name": "bar",
"version": "2.0.0"
}
]
}
--dry-run#
Робити все, що робить публікація, за винятком власне публікації в реєстрі.
--otp#
При публікації пакунків, які вимагають двофакторної автентифікації, у цьому параметрі можна вказати одноразовий пароль.
Ви також можете вказати OTP через змінну середовища PNPM_CONFIG_OTP:
export PNPM_CONFIG_OTP='<your OTP here>'
pnpm publish --no-git-checks
Якщо реєстр запитує OTP, а ви не надали його через змінну середовища або прапорець --otp, pnpm безпосередньо запитає у вас код OTP.
Якщо реєстр запитує вебавтентифікацію, pnpm виведе доступний для сканування QR-код разом з URL-адресою.
--provenance#
При публікації з підтримуваної хмарної системи CI/CD пакунок буде публічно повʼязаний з місцем, де він був створений і опублікований.
--filter <package_selector>#
Читайте більше про використання фільтрів.
Налаштування#
Ви також можете встановити параметри gitChecks, publishBranch у файлі pnpm-workspace.yaml.
Наприклад:
gitChecks: false
publishBranch: production
Сценарії#
prepublishOnlyprepublishprepackpreparepostpackpublishpostpublish