Skip to content

import Publish from "/ru/snippets/cli/publish.mdx";

bun publish автоматически упакует ваш пакет в tarball, удалит протоколы каталогов и рабочих областей из package.json (при необходимости разрешив версии) и опубликует в реестр, указанный в ваших файлах конфигурации. Поддерживаются как файлы bunfig.toml, так и .npmrc.

sh
## Публикация пакета из текущего рабочего каталога
bun publish
txt
bun publish v1.3.3 (ca7428e9)

packed 203B package.json
packed 224B README.md
packed 30B index.ts
packed 0.64KB tsconfig.json

Total files: 4
Shasum: 79e2b4377b63f4de38dc7ea6e5e9dbee08311a69
Integrity: sha512-6QSNlDdSwyG/+[...]X6wXHriDWr6fA==
Unpacked size: 1.1KB
Packed size: 0.76KB
Tag: latest
Access: default
Registry: http://localhost:4873/

 + publish-1@1.0.0

В качестве альтернативы вы можете отдельно упаковать и опубликовать ваш пакет, используя bun pm pack, а затем bun publish с путем к выходному tarball.

sh
bun pm pack
...
bun publish ./package.tgz

NOTE

`bun publish` не будет запускать скрипты жизненного цикла (`prepublishOnly/prepack/prepare/postpack/publish/postpublish`), если предоставлен путь к tarball. Скрипты будут выполнены только если пакет упакован `bun publish`.

--access

Флаг --access может использоваться для установки уровня доступа публикуемого пакета. Уровень доступа может быть public или restricted. Пакеты без области действия всегда являются публичными, и попытка опубликовать пакет без области действия с --access restricted приведет к ошибке.

sh
bun publish --access public

--access также можно установить в поле publishConfig вашего package.json.

json
{
  "publishConfig": {
    "access": "restricted"
  }
}

--tag

Установить тег версии пакета, который публикуется. По умолчанию тег — latest. Начальная версия пакета всегда получает тег latest в дополнение к указанному тегу.

sh
bun publish --tag alpha

--tag также можно установить в поле publishConfig вашего package.json.

json
{
  "publishConfig": {
    "tag": "next"
  }
}

--dry-run

Флаг --dry-run может использоваться для имитации процесса публикации без фактической публикации пакета. Это полезно для проверки содержимого публикуемого пакета без фактической публикации.

sh
bun publish --dry-run

--tolerate-republish

Завершить с кодом 0 вместо 1, если версия пакета уже существует. Полезно в CI/CD, где задания могут быть перезапущены.

sh
bun publish --tolerate-republish

--gzip-level

Указать уровень сжатия gzip, используемый при упаковке пакета. Применяется только к bun publish без аргумента пути к tarball. Значения от 0 до 9 (по умолчанию 9).

--auth-type

Если у вас включена 2FA для вашей учетной записи npm, bun publish запросит у вас одноразовый пароль. Это можно сделать через браузер или CLI. Флаг --auth-type может использоваться для указания реестру npm, какой метод вы предпочитаете. Возможные значения — web и legacy, где web по умолчанию.

sh
bun publish --auth-type legacy
...
This operation requires a one-time password.
Enter OTP: 123456
...

--otp

Предоставить одноразовый пароль напрямую в CLI. Если пароль действителен, это пропустит дополнительный запрос одноразового пароля перед публикацией. Пример использования:

sh
bun publish --otp 123456

NOTE

`bun publish` уважает переменную окружения `NPM_CONFIG_TOKEN`, которая может использоваться при публикации в github actions или автоматизированных рабочих процессах.

Bun от www.bunjs.com.cn