Skip to content

import Add from "/ru/snippets/cli/add.mdx";

Для добавления конкретного пакета:

bash
bun add preact

Для указания версии, диапазона версий или тега:

bash
bun add zod@3.20.0
bun add zod@^3.0.0
bun add zod@latest

--dev

NOTE

**Псевдоним** — `--development`, `-d`, `-D`

Для добавления пакета как dev-зависимости ("devDependencies"):

bash
bun add --dev @types/react
bun add -d @types/react

--optional

Для добавления пакета как опциональной зависимости ("optionalDependencies"):

bash
bun add --optional lodash

--peer

Для добавления пакета как peer-зависимости ("peerDependencies"):

bash
bun add --peer @types/bun

--exact

NOTE

**Псевдоним** — `-E`

Для добавления пакета и закрепления разрешенной версии используйте --exact. Это разрешит версию пакета и добавит ее в ваш package.json с точным номером версии вместо диапазона версий.

bash
bun add react --exact
bun add react -E

Это добавит следующее в ваш package.json:

json
{
  "dependencies": {
    // без --exact
    "react": "^18.2.0", // это соответствует >= 18.2.0 < 19.0.0

    // с --exact
    "react": "18.2.0" // это соответствует только 18.2.0 точно
  }
}

Для просмотра полного списка опций для этой команды:

bash
bun add --help

--global

NOTE

**Примечание** — Это не будет изменять package.json вашей текущей папки проекта. **Псевдоним** - `bun add --global`, `bun add -g`, `bun install --global` и `bun install -g`

Для глобальной установки пакета используйте флаг -g/--global. Это не изменит package.json вашего текущего проекта. Обычно это используется для установки инструментов командной строки.

bash
bun add --global cowsay # или `bun add -g cowsay`
cowsay "Bun!"
txt
 ______
< Bun! >
 ------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Настройка поведения глобальной установки

toml
[install]
# где `bun add --global` устанавливает пакеты
globalDir = "~/.bun/install/global"

# куда связываются бинарные файлы глобально установленных пакетов
globalBinDir = "~/.bun/bin"

Доверенные зависимости

В отличие от других клиентов npm, Bun не выполняет произвольные скрипты жизненного цикла для установленных зависимостей, такие как postinstall. Эти скрипты представляют потенциальный риск для безопасности, так как могут выполнять произвольный код на вашей машине.

Чтобы разрешить Bun выполнять скрипты жизненного цикла для конкретного пакета, добавьте пакет в trustedDependencies в вашем package.json.

json
{
  "name": "my-app",
  "version": "1.0.0",
  "trustedDependencies": ["my-trusted-package"] 
}

Bun прочитает это поле и выполнит скрипты жизненного цикла для my-trusted-package.

Git-зависимости

Для добавления зависимости из публичного или частного git-репозитория:

bash
bun add git@github.com:moment/moment.git

NOTE

Для установки частных репозиториев вашей системе необходимы соответствующие SSH-учетные данные для доступа к репозиторию.

Bun поддерживает множество протоколов, включая github, git, git+ssh, git+https и многие другие.

json
{
  "dependencies": {
    "dayjs": "git+https://github.com/iamkun/dayjs.git",
    "lodash": "git+ssh://github.com/lodash/lodash.git#4.17.21",
    "moment": "git@github.com:moment/moment.git",
    "zod": "github:colinhacks/zod"
  }
}

Зависимости из tarball

Имя пакета может соответствовать публично размещенному файлу .tgz. Во время установки Bun загрузит и установит пакет из указанного URL tarball, а не из реестра пакетов.

sh
bun add zod@https://registry.npmjs.org/zod/-/zod-3.21.4.tgz

Это добавит следующую строку в ваш package.json:

json
{
  "dependencies": {
    "zod": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz"
  }
}

Bun от www.bunjs.com.cn