Files
bun.sh/docs/installation.md
2023-03-13 13:47:57 -07:00

3.1 KiB

Bun ships as a single executable that can be installed a few different ways.

{% callout %} Windows users — Bun does not currently provide a native Windows build. We're working on this; progress can be tracked at this issue. In the meantime, use one of the installation methods below for Windows Subsystem for Linux.

Linux users — Kernel version 5.6 or higher is strongly recommended, but the minimum is 5.1. {% /callout %}

{% codetabs %}

$ curl -fsSL https://bun.sh/install | bash # for macOS, Linux, and WSL
$ npm install -g bun # the last `npm` command you'll ever need
$ brew tap oven-sh/bun # for macOS and Linux
$ brew install bun
$ docker pull oven/bun
$ docker run --rm --init --ulimit memlock=-1:-1 oven/bun
$ proto install bun

{% /codetabs %}

Upgrading

Once installed, the binary can upgrade itself.

$ bun upgrade

{% callout %} Homebrew users — To avoid conflicts with Homebrew, use brew upgrade bun instead.

proto users - Use proto install bun --pin instead. {% /callout %}

Bun automatically releases an (untested) canary build on every commit to main. To upgrade to the latest canary build:

$ bun upgrade --canary

View canary build

TypeScript

To install TypeScript definitions for Bun's built-in APIs in your project, install bun-types.

$ bun add -d bun-types # dev dependency

Then include "bun-types" in the compilerOptions.types in your tsconfig.json:

  {
    "compilerOptions": {
+     "types": ["bun-types"]
    }
  }

Refer to Ecosystem > TypeScript for a complete guide to TypeScript support in Bun.

Completions

Shell auto-completion should be configured automatically when Bun is installed.

If not, run the following command. It uses $SHELL to determine which shell you're using and writes a completion file to the appropriate place on disk. It's automatically re-run on every bun upgrade.

$ bun completions

To write the completions to a custom location:

$ bun completions > path-to-file      # write to file
$ bun completions /path/to/directory  # write into directory