Группа команд bun pm предоставляет набор утилит для работы с менеджером пакетов Bun.
pack
Для создания tarball текущей рабочей области:
bun pm packЭта команда создает файл .tgz, содержащий все файлы, которые будут опубликованы в npm, следуя тем же правилам, что и npm pack.
Примеры
Базовое использование:
bun pm pack
# Создает my-package-1.0.0.tgz в текущем каталогеТихий режим для скриптов:
TARBALL=$(bun pm pack --quiet)
echo "Создано: $TARBALL"Создано: my-package-1.0.0.tgzПользовательское назначение:
bun pm pack --destination ./dist
# Сохраняет tarball в каталоге ./dist/Опции
--dry-run— Выполнить все задачи, кроме записи tarball на диск. Показывает, что будет включено.--destination <dir>— Указать каталог, где будет сохранен tarball.--filename <name>— Указать точное имя файла для сохранения tarball.--ignore-scripts— Пропустить выполнение скриптов pre/postpack и prepare.--gzip-level <0-9>— Установить пользовательский уровень сжатия gzip от 0 до 9 (по умолчанию 9).--quiet— Выводить только имя файла tarball, подавляя подробный вывод. Идеально для скриптов и автоматизации.
Примечание:
--filenameи--destinationнельзя использовать одновременно.
Режимы вывода
Вывод по умолчанию:
bun pm packbun pack v1.2.19
packed 131B package.json
packed 40B index.js
my-package-1.0.0.tgz
Total files: 2
Shasum: f2451d6eb1e818f500a791d9aace80b394258a90
Unpacked size: 171B
Packed size: 249BТихий вывод:
bun pm pack --quietmy-package-1.0.0.tgzФлаг --quiet особенно полезен для рабочих процессов автоматизации, где вам нужно захватить сгенерированное имя файла tarball для дальнейшей обработки.
bin
Для вывода пути к каталогу bin для локального проекта:
bun pm bin/path/to/current/project/node_modules/.binДля вывода пути к глобальному каталогу bin:
bun pm bin -g<$HOME>/.bun/binls
Для вывода списка установленных зависимостей в текущем проекте и их разрешенных версий, исключая их зависимости.
bun pm ls
# или
bun list/path/to/project node_modules (135)
├── eslint@8.38.0
├── react@18.2.0
├── react-dom@18.2.0
├── typescript@5.0.4
└── zod@3.21.4Для вывода всех установленных зависимостей, включая зависимости n-го порядка.
bun pm ls --all
# или
bun list --all/path/to/project node_modules (135)
├── @eslint-community/eslint-utils@4.4.0
├── @eslint-community/regexpp@4.5.0
├── @eslint/eslintrc@2.0.2
├── @eslint/js@8.38.0
├── @nodelib/fs.scandir@2.1.5
├── @nodelib/fs.stat@2.0.5
├── @nodelib/fs.walk@1.2.8
├── acorn@8.8.2
├── acorn-jsx@5.3.2
├── ajv@6.12.6
├── ansi-regex@5.0.1
├── ...whoami
Вывод вашего имени пользователя npm. Требуется вход (bunx npm login) с учетными данными в bunfig.toml или .npmrc:
bun pm whoamihash
Для генерации и вывода хэша текущего файла блокировки:
bun pm hashДля вывода строки, используемой для хэширования файла блокировки:
bun pm hash-stringДля вывода хэша, сохраненного в текущем файле блокировки:
bun pm hash-printcache
Для вывода пути к глобальному кэшу модулей Bun:
bun pm cacheДля очистки глобального кэша модулей Bun:
bun pm cache rmmigrate
Для миграции файла блокировки другого менеджера пакетов без установки чего-либо:
bun pm migrateuntrusted
Для вывода текущих недоверенных зависимостей со скриптами:
bun pm untrusted./node_modules/@biomejs/biome @1.8.3
» [postinstall]: node scripts/postinstall.js
These dependencies had their lifecycle scripts blocked during install.trust
Для запуска скриптов для недоверенных зависимостей и добавления в trustedDependencies:
bun pm trust <names>Опции для команды trust:
--all— Доверять всем недоверенным зависимостям.
default-trusted
Для вывода списка доверенных зависимостей по умолчанию:
bun pm default-trustedсм. текущий список на GitHub здесь
version
Для отображения текущей версии пакета и справки:
bun pm versionbun pm version v1.3.3 (ca7428e9)
Current package version: v1.0.0
Increment:
patch 1.0.0 → 1.0.1
minor 1.0.0 → 1.1.0
major 1.0.0 → 2.0.0
prerelease 1.0.0 → 1.0.1-0
prepatch 1.0.0 → 1.0.1-0
preminor 1.0.0 → 1.1.0-0
premajor 1.0.0 → 2.0.0-0
from-git Использовать версию из последнего git-тега
1.2.3 Установить конкретную версию
Options:
--no-git-tag-version Пропустить git-операции
--allow-same-version Предотвратить ошибку, если версия одинакова
--message=<val>, -m Пользовательское сообщение коммита, используйте %s для подстановки версии
--preid=<val> Идентификатор предрелиза (т.е. beta → 1.0.1-beta.0)
--force, -f Обойти проверку грязной git-истории
Examples:
bun pm version patch
bun pm version 1.2.3 --no-git-tag-version
bun pm version prerelease --preid beta --message "Release beta: %s"Для обновления версии в package.json:
bun pm version patchv1.0.1Поддерживает patch, minor, major, premajor, preminor, prepatch, prerelease, from-git или конкретные версии, такие как 1.2.3. По умолчанию создает git-коммит и тег, если не использовался --no-git-tag-version для пропуска.
pkg
Управление данными package.json с операциями get, set, delete и fix.
Все команды поддерживают точечную и скобочную нотацию:
scripts.build # точечная нотация
contributors[0] # доступ к массиву
workspaces.0 # точечная с числовым индексом
scripts[test:watch] # скобочная для специальных символовПримеры:
# get
bun pm pkg get name # одно свойство
bun pm pkg get name version # несколько свойств
bun pm pkg get # весь package.json
bun pm pkg get scripts.build # вложенное свойство
# set
bun pm pkg set name="my-package" # простое свойство
bun pm pkg set scripts.test="jest" version=2.0.0 # несколько свойств
bun pm pkg set {"private":"true"} --json # JSON-значения с флагом --json
# delete
bun pm pkg delete description # одно свойство
bun pm pkg delete scripts.test contributors[0] # несколько/вложенных
# fix
bun pm pkg fix # автоисправление распространенных проблем