bun-types 1.3.2-canary.20251104T140728 → 1.3.2-canary.20251106T140813
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bun.d.ts +4 -4
- package/docs/README.md +28 -0
- package/globals.d.ts +0 -1
- package/overrides.d.ts +45 -15
- package/package.json +1 -1
- package/test.d.ts +1 -1
- package/docs/api/binary-data.md +0 -1038
- package/docs/api/cc.md +0 -197
- package/docs/api/color.md +0 -262
- package/docs/api/console.md +0 -57
- package/docs/api/cookie.md +0 -449
- package/docs/api/dns.md +0 -110
- package/docs/api/fetch.md +0 -463
- package/docs/api/ffi.md +0 -557
- package/docs/api/file-io.md +0 -366
- package/docs/api/file-system-router.md +0 -112
- package/docs/api/file.md +0 -19
- package/docs/api/glob.md +0 -178
- package/docs/api/globals.md +0 -387
- package/docs/api/hashing.md +0 -319
- package/docs/api/html-rewriter.md +0 -334
- package/docs/api/http.md +0 -1408
- package/docs/api/import-meta.md +0 -69
- package/docs/api/node-api.md +0 -14
- package/docs/api/redis.md +0 -597
- package/docs/api/s3.md +0 -850
- package/docs/api/secrets.md +0 -319
- package/docs/api/semver.md +0 -52
- package/docs/api/spawn.md +0 -582
- package/docs/api/sql.md +0 -1374
- package/docs/api/sqlite.md +0 -694
- package/docs/api/streams.md +0 -230
- package/docs/api/tcp.md +0 -221
- package/docs/api/transpiler.md +0 -276
- package/docs/api/udp.md +0 -123
- package/docs/api/utils.md +0 -891
- package/docs/api/websockets.md +0 -573
- package/docs/api/workers.md +0 -322
- package/docs/api/yaml.md +0 -668
- package/docs/benchmarks.md +0 -120
- package/docs/bun-flavored-toml.md +0 -42
- package/docs/bundler/css.md +0 -1028
- package/docs/bundler/css_modules.md +0 -145
- package/docs/bundler/executables.md +0 -626
- package/docs/bundler/fullstack.md +0 -418
- package/docs/bundler/hmr.md +0 -234
- package/docs/bundler/html.md +0 -349
- package/docs/bundler/index.md +0 -1735
- package/docs/bundler/intro.md +0 -75
- package/docs/bundler/loaders.md +0 -410
- package/docs/bundler/macros.md +0 -329
- package/docs/bundler/plugins.md +0 -449
- package/docs/bundler/vs-esbuild.md +0 -1127
- package/docs/cli/add.md +0 -173
- package/docs/cli/bun-completions.md +0 -3
- package/docs/cli/bun-create.md +0 -338
- package/docs/cli/bun-install.md +0 -349
- package/docs/cli/bun-upgrade.md +0 -39
- package/docs/cli/bunx.md +0 -89
- package/docs/cli/filter.md +0 -90
- package/docs/cli/info.md +0 -65
- package/docs/cli/init.md +0 -85
- package/docs/cli/install.md +0 -344
- package/docs/cli/link.md +0 -40
- package/docs/cli/outdated.md +0 -90
- package/docs/cli/patch-commit.md +0 -11
- package/docs/cli/pm.md +0 -285
- package/docs/cli/publish.md +0 -120
- package/docs/cli/remove.md +0 -7
- package/docs/cli/run.md +0 -261
- package/docs/cli/test.md +0 -397
- package/docs/cli/unlink.md +0 -9
- package/docs/cli/update.md +0 -129
- package/docs/cli/why.md +0 -67
- package/docs/contributing/upgrading-webkit.md +0 -57
- package/docs/ecosystem/elysia.md +0 -24
- package/docs/ecosystem/express.md +0 -37
- package/docs/ecosystem/hono.md +0 -18
- package/docs/ecosystem/react.md +0 -65
- package/docs/ecosystem/stric.md +0 -38
- package/docs/guides/binary/arraybuffer-to-array.md +0 -27
- package/docs/guides/binary/arraybuffer-to-blob.md +0 -24
- package/docs/guides/binary/arraybuffer-to-buffer.md +0 -25
- package/docs/guides/binary/arraybuffer-to-string.md +0 -15
- package/docs/guides/binary/arraybuffer-to-typedarray.md +0 -39
- package/docs/guides/binary/blob-to-arraybuffer.md +0 -14
- package/docs/guides/binary/blob-to-dataview.md +0 -14
- package/docs/guides/binary/blob-to-stream.md +0 -14
- package/docs/guides/binary/blob-to-string.md +0 -15
- package/docs/guides/binary/blob-to-typedarray.md +0 -14
- package/docs/guides/binary/buffer-to-arraybuffer.md +0 -14
- package/docs/guides/binary/buffer-to-blob.md +0 -14
- package/docs/guides/binary/buffer-to-readablestream.md +0 -41
- package/docs/guides/binary/buffer-to-string.md +0 -25
- package/docs/guides/binary/buffer-to-typedarray.md +0 -14
- package/docs/guides/binary/dataview-to-string.md +0 -15
- package/docs/guides/binary/typedarray-to-arraybuffer.md +0 -25
- package/docs/guides/binary/typedarray-to-blob.md +0 -16
- package/docs/guides/binary/typedarray-to-buffer.md +0 -14
- package/docs/guides/binary/typedarray-to-dataview.md +0 -14
- package/docs/guides/binary/typedarray-to-readablestream.md +0 -41
- package/docs/guides/binary/typedarray-to-string.md +0 -16
- package/docs/guides/deployment/railway.md +0 -157
- package/docs/guides/ecosystem/astro.md +0 -72
- package/docs/guides/ecosystem/discordjs.md +0 -77
- package/docs/guides/ecosystem/docker.md +0 -140
- package/docs/guides/ecosystem/drizzle.md +0 -185
- package/docs/guides/ecosystem/edgedb.md +0 -228
- package/docs/guides/ecosystem/elysia.md +0 -31
- package/docs/guides/ecosystem/express.md +0 -40
- package/docs/guides/ecosystem/hono.md +0 -39
- package/docs/guides/ecosystem/mongoose.md +0 -87
- package/docs/guides/ecosystem/neon-drizzle.md +0 -220
- package/docs/guides/ecosystem/neon-serverless-postgres.md +0 -55
- package/docs/guides/ecosystem/nextjs.md +0 -49
- package/docs/guides/ecosystem/nuxt.md +0 -56
- package/docs/guides/ecosystem/pm2.md +0 -57
- package/docs/guides/ecosystem/prisma.md +0 -141
- package/docs/guides/ecosystem/qwik.md +0 -107
- package/docs/guides/ecosystem/react.md +0 -50
- package/docs/guides/ecosystem/remix.md +0 -78
- package/docs/guides/ecosystem/render.md +0 -79
- package/docs/guides/ecosystem/sentry.md +0 -52
- package/docs/guides/ecosystem/solidstart.md +0 -58
- package/docs/guides/ecosystem/ssr-react.md +0 -51
- package/docs/guides/ecosystem/stric.md +0 -55
- package/docs/guides/ecosystem/sveltekit.md +0 -125
- package/docs/guides/ecosystem/systemd.md +0 -113
- package/docs/guides/ecosystem/vite.md +0 -71
- package/docs/guides/html-rewriter/extract-links.md +0 -68
- package/docs/guides/html-rewriter/extract-social-meta.md +0 -93
- package/docs/guides/http/cluster.md +0 -66
- package/docs/guides/http/fetch-unix.md +0 -33
- package/docs/guides/http/fetch.md +0 -24
- package/docs/guides/http/file-uploads.md +0 -94
- package/docs/guides/http/hot.md +0 -26
- package/docs/guides/http/proxy.md +0 -24
- package/docs/guides/http/server.md +0 -46
- package/docs/guides/http/simple.md +0 -18
- package/docs/guides/http/stream-file.md +0 -48
- package/docs/guides/http/stream-iterator.md +0 -47
- package/docs/guides/http/stream-node-streams-in-bun.md +0 -20
- package/docs/guides/http/tls.md +0 -30
- package/docs/guides/install/add-dev.md +0 -26
- package/docs/guides/install/add-git.md +0 -36
- package/docs/guides/install/add-optional.md +0 -25
- package/docs/guides/install/add-peer.md +0 -43
- package/docs/guides/install/add-tarball.md +0 -33
- package/docs/guides/install/add.md +0 -42
- package/docs/guides/install/azure-artifacts.md +0 -73
- package/docs/guides/install/cicd.md +0 -41
- package/docs/guides/install/custom-registry.md +0 -30
- package/docs/guides/install/from-npm-install-to-bun-install.md +0 -214
- package/docs/guides/install/git-diff-bun-lockfile.md +0 -44
- package/docs/guides/install/jfrog-artifactory.md +0 -28
- package/docs/guides/install/npm-alias.md +0 -23
- package/docs/guides/install/registry-scope.md +0 -38
- package/docs/guides/install/trusted.md +0 -46
- package/docs/guides/install/workspaces.md +0 -70
- package/docs/guides/install/yarnlock.md +0 -44
- package/docs/guides/process/argv.md +0 -58
- package/docs/guides/process/ctrl-c.md +0 -16
- package/docs/guides/process/ipc.md +0 -66
- package/docs/guides/process/nanoseconds.md +0 -13
- package/docs/guides/process/os-signals.md +0 -39
- package/docs/guides/process/spawn-stderr.md +0 -31
- package/docs/guides/process/spawn-stdout.md +0 -26
- package/docs/guides/process/spawn.md +0 -41
- package/docs/guides/process/stdin.md +0 -54
- package/docs/guides/read-file/arraybuffer.md +0 -28
- package/docs/guides/read-file/buffer.md +0 -19
- package/docs/guides/read-file/exists.md +0 -16
- package/docs/guides/read-file/json.md +0 -17
- package/docs/guides/read-file/mime.md +0 -20
- package/docs/guides/read-file/stream.md +0 -26
- package/docs/guides/read-file/string.md +0 -22
- package/docs/guides/read-file/uint8array.md +0 -21
- package/docs/guides/read-file/watch.md +0 -68
- package/docs/guides/runtime/build-time-constants.md +0 -293
- package/docs/guides/runtime/cicd.md +0 -43
- package/docs/guides/runtime/codesign-macos-executable.md +0 -56
- package/docs/guides/runtime/define-constant.md +0 -145
- package/docs/guides/runtime/delete-directory.md +0 -37
- package/docs/guides/runtime/delete-file.md +0 -19
- package/docs/guides/runtime/heap-snapshot.md +0 -26
- package/docs/guides/runtime/import-html.md +0 -15
- package/docs/guides/runtime/import-json.md +0 -44
- package/docs/guides/runtime/import-toml.md +0 -30
- package/docs/guides/runtime/import-yaml.md +0 -102
- package/docs/guides/runtime/read-env.md +0 -32
- package/docs/guides/runtime/set-env.md +0 -47
- package/docs/guides/runtime/shell.md +0 -40
- package/docs/guides/runtime/timezone.md +0 -35
- package/docs/guides/runtime/tsconfig-paths.md +0 -29
- package/docs/guides/runtime/typescript.md +0 -49
- package/docs/guides/runtime/vscode-debugger.md +0 -47
- package/docs/guides/runtime/web-debugger.md +0 -82
- package/docs/guides/streams/node-readable-to-arraybuffer.md +0 -11
- package/docs/guides/streams/node-readable-to-blob.md +0 -11
- package/docs/guides/streams/node-readable-to-json.md +0 -12
- package/docs/guides/streams/node-readable-to-string.md +0 -12
- package/docs/guides/streams/node-readable-to-uint8array.md +0 -11
- package/docs/guides/streams/to-array.md +0 -14
- package/docs/guides/streams/to-arraybuffer.md +0 -14
- package/docs/guides/streams/to-blob.md +0 -14
- package/docs/guides/streams/to-buffer.md +0 -15
- package/docs/guides/streams/to-json.md +0 -14
- package/docs/guides/streams/to-string.md +0 -14
- package/docs/guides/streams/to-typedarray.md +0 -22
- package/docs/guides/test/bail.md +0 -22
- package/docs/guides/test/coverage-threshold.md +0 -60
- package/docs/guides/test/coverage.md +0 -44
- package/docs/guides/test/happy-dom.md +0 -68
- package/docs/guides/test/migrate-from-jest.md +0 -143
- package/docs/guides/test/mock-clock.md +0 -48
- package/docs/guides/test/mock-functions.md +0 -68
- package/docs/guides/test/rerun-each.md +0 -14
- package/docs/guides/test/run-tests.md +0 -111
- package/docs/guides/test/skip-tests.md +0 -39
- package/docs/guides/test/snapshot.md +0 -95
- package/docs/guides/test/spy-on.md +0 -46
- package/docs/guides/test/svelte-test.md +0 -120
- package/docs/guides/test/testing-library.md +0 -92
- package/docs/guides/test/timeout.md +0 -15
- package/docs/guides/test/todo-tests.md +0 -67
- package/docs/guides/test/update-snapshots.md +0 -46
- package/docs/guides/test/watch-mode.md +0 -19
- package/docs/guides/util/base64.md +0 -15
- package/docs/guides/util/deep-equals.md +0 -39
- package/docs/guides/util/deflate.md +0 -18
- package/docs/guides/util/detect-bun.md +0 -23
- package/docs/guides/util/entrypoint.md +0 -17
- package/docs/guides/util/escape-html.md +0 -22
- package/docs/guides/util/file-url-to-path.md +0 -14
- package/docs/guides/util/gzip.md +0 -18
- package/docs/guides/util/hash-a-password.md +0 -54
- package/docs/guides/util/import-meta-dir.md +0 -13
- package/docs/guides/util/import-meta-file.md +0 -13
- package/docs/guides/util/import-meta-path.md +0 -13
- package/docs/guides/util/javascript-uuid.md +0 -23
- package/docs/guides/util/main.md +0 -32
- package/docs/guides/util/path-to-file-url.md +0 -14
- package/docs/guides/util/sleep.md +0 -22
- package/docs/guides/util/version.md +0 -21
- package/docs/guides/util/which-path-to-executable-bin.md +0 -15
- package/docs/guides/websocket/compression.md +0 -31
- package/docs/guides/websocket/context.md +0 -77
- package/docs/guides/websocket/pubsub.md +0 -41
- package/docs/guides/websocket/simple.md +0 -33
- package/docs/guides/write-file/append.md +0 -52
- package/docs/guides/write-file/basic.md +0 -44
- package/docs/guides/write-file/blob.md +0 -28
- package/docs/guides/write-file/cat.md +0 -17
- package/docs/guides/write-file/file-cp.md +0 -16
- package/docs/guides/write-file/filesink.md +0 -52
- package/docs/guides/write-file/response.md +0 -17
- package/docs/guides/write-file/stdout.md +0 -21
- package/docs/guides/write-file/stream.md +0 -17
- package/docs/guides/write-file/unlink.md +0 -16
- package/docs/index.md +0 -77
- package/docs/install/audit.md +0 -57
- package/docs/install/cache.md +0 -59
- package/docs/install/catalogs.md +0 -298
- package/docs/install/index.md +0 -248
- package/docs/install/isolated.md +0 -197
- package/docs/install/lifecycle.md +0 -46
- package/docs/install/lockfile.md +0 -58
- package/docs/install/npmrc.md +0 -105
- package/docs/install/overrides.md +0 -73
- package/docs/install/patch.md +0 -59
- package/docs/install/registries.md +0 -30
- package/docs/install/security-scanner-api.md +0 -81
- package/docs/install/workspaces.md +0 -114
- package/docs/installation.md +0 -327
- package/docs/project/asan.md +0 -124
- package/docs/project/benchmarking.md +0 -203
- package/docs/project/bindgen.md +0 -225
- package/docs/project/building-windows.md +0 -162
- package/docs/project/contributing.md +0 -347
- package/docs/project/internals/build-process-for-ci.md +0 -75
- package/docs/project/licensing.md +0 -73
- package/docs/project/roadmap.md +0 -87
- package/docs/quickstart.md +0 -157
- package/docs/runtime/autoimport.md +0 -94
- package/docs/runtime/bun-apis.md +0 -207
- package/docs/runtime/bunfig.md +0 -772
- package/docs/runtime/debugger.md +0 -325
- package/docs/runtime/env.md +0 -253
- package/docs/runtime/hot.md +0 -145
- package/docs/runtime/index.md +0 -312
- package/docs/runtime/jsx.md +0 -385
- package/docs/runtime/loaders.md +0 -130
- package/docs/runtime/modules.md +0 -320
- package/docs/runtime/nodejs-apis.md +0 -463
- package/docs/runtime/plugins.md +0 -561
- package/docs/runtime/shell.md +0 -605
- package/docs/runtime/typescript.md +0 -139
- package/docs/runtime/web-apis.md +0 -128
- package/docs/test/configuration.md +0 -154
- package/docs/test/coverage.md +0 -142
- package/docs/test/discovery.md +0 -85
- package/docs/test/dom.md +0 -75
- package/docs/test/examples/concurrent-test-glob.md +0 -132
- package/docs/test/hot.md +0 -15
- package/docs/test/lifecycle.md +0 -81
- package/docs/test/mocks.md +0 -313
- package/docs/test/reporters.md +0 -117
- package/docs/test/runtime-behavior.md +0 -95
- package/docs/test/snapshots.md +0 -68
- package/docs/test/time.md +0 -126
- package/docs/test/writing.md +0 -825
- package/docs/typescript.md +0 -53
package/docs/install/index.md
DELETED
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
The `bun` CLI contains an `npm`-compatible package manager designed to be a faster replacement for existing package management tools like `npm`, `yarn`, and `pnpm`. It's designed for Node.js compatibility; use it in any Bun or Node.js project.
|
|
2
|
-
|
|
3
|
-
{% callout %}
|
|
4
|
-
|
|
5
|
-
**⚡️ 80x faster** — Switch from `npm install` to `bun install` in any Node.js project to make your installations up to 80x faster.
|
|
6
|
-
|
|
7
|
-
{% image src="https://user-images.githubusercontent.com/709451/147004342-571b6123-17a9-49a2-8bfd-dcfc5204047e.png" height="200" /%}
|
|
8
|
-
|
|
9
|
-
{% /callout %}
|
|
10
|
-
|
|
11
|
-
{% details summary="For Linux users" %}
|
|
12
|
-
The minimum Linux Kernel version is 5.1. If you're on Linux kernel 5.1 - 5.5, `bun install` should still work, but HTTP requests will be slow due to a lack of support for io_uring's `connect()` operation.
|
|
13
|
-
|
|
14
|
-
If you're using Ubuntu 20.04, here's how to install a [newer kernel](https://wiki.ubuntu.com/Kernel/LTSEnablementStack):
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
# If this returns a version >= 5.6, you don't need to do anything
|
|
18
|
-
uname -r
|
|
19
|
-
|
|
20
|
-
# Install the official Ubuntu hardware enablement kernel
|
|
21
|
-
sudo apt install --install-recommends linux-generic-hwe-20.04
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
{% /details %}
|
|
25
|
-
|
|
26
|
-
## Manage dependencies
|
|
27
|
-
|
|
28
|
-
### `bun install`
|
|
29
|
-
|
|
30
|
-
To install all dependencies of a project:
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
$ bun install
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
On Linux, `bun install` tends to install packages 20-100x faster than `npm install`. On macOS, it's more like 4-80x.
|
|
37
|
-
|
|
38
|
-

|
|
39
|
-
|
|
40
|
-
Running `bun install` will:
|
|
41
|
-
|
|
42
|
-
- **Install** all `dependencies`, `devDependencies`, and `optionalDependencies`. Bun will install `peerDependencies` by default.
|
|
43
|
-
- **Run** your project's `{pre|post}install` scripts at the appropriate time. For security reasons Bun _does not execute_ lifecycle scripts of installed dependencies.
|
|
44
|
-
- **Write** a `bun.lock` lockfile to the project root.
|
|
45
|
-
|
|
46
|
-
To install in production mode (i.e. without `devDependencies`):
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
$ bun install --production
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
To install dependencies without allowing changes to lockfile (useful on CI):
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
$ bun install --frozen-lockfile
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
To exclude dependency types from installing, use `--omit` with `dev`, `optional`, or `peer`:
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
# Disable devDependencies and optionalDependencies
|
|
62
|
-
$ bun install --omit=dev --omit=optional
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
To perform a dry run (i.e. don't actually install anything or update the lockfile):
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
$ bun install --dry-run
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
To generate a lockfile without install packages:
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
$ bun install --lockfile-only
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
To modify logging verbosity:
|
|
78
|
-
|
|
79
|
-
```bash
|
|
80
|
-
$ bun install --verbose # debug logging
|
|
81
|
-
$ bun install --silent # no logging
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
To use isolated installs instead of the default hoisted strategy:
|
|
85
|
-
|
|
86
|
-
```bash
|
|
87
|
-
$ bun install --linker isolated
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
Isolated installs create strict dependency isolation similar to pnpm, preventing phantom dependencies and ensuring more deterministic builds. For complete documentation, see [Isolated installs](https://bun.com/docs/install/isolated).
|
|
91
|
-
|
|
92
|
-
To protect against supply chain attacks, set a minimum age (in seconds) for package versions:
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
$ bun install --minimum-release-age 259200 # 3 days
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
{% details summary="Configuring behavior" %}
|
|
99
|
-
The default behavior of `bun install` can be configured in `bunfig.toml`:
|
|
100
|
-
|
|
101
|
-
```toml
|
|
102
|
-
[install]
|
|
103
|
-
|
|
104
|
-
# whether to install optionalDependencies
|
|
105
|
-
optional = true
|
|
106
|
-
|
|
107
|
-
# whether to install devDependencies
|
|
108
|
-
dev = true
|
|
109
|
-
|
|
110
|
-
# whether to install peerDependencies
|
|
111
|
-
peer = true
|
|
112
|
-
|
|
113
|
-
# equivalent to `--production` flag
|
|
114
|
-
production = false
|
|
115
|
-
|
|
116
|
-
# equivalent to `--save-text-lockfile` flag
|
|
117
|
-
saveTextLockfile = false
|
|
118
|
-
|
|
119
|
-
# equivalent to `--frozen-lockfile` flag
|
|
120
|
-
frozenLockfile = false
|
|
121
|
-
|
|
122
|
-
# equivalent to `--dry-run` flag
|
|
123
|
-
dryRun = false
|
|
124
|
-
|
|
125
|
-
# equivalent to `--concurrent-scripts` flag
|
|
126
|
-
concurrentScripts = 16 # (cpu count or GOMAXPROCS) x2
|
|
127
|
-
|
|
128
|
-
# installation strategy: "hoisted" or "isolated"
|
|
129
|
-
# default: "hoisted"
|
|
130
|
-
linker = "hoisted"
|
|
131
|
-
|
|
132
|
-
# minimum package age in seconds (protects against supply chain attacks)
|
|
133
|
-
minimumReleaseAge = 259200 # 3 days
|
|
134
|
-
|
|
135
|
-
# exclude packages from age requirement
|
|
136
|
-
minimumReleaseAgeExcludes = ["@types/node", "typescript"]
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
{% /details %}
|
|
140
|
-
|
|
141
|
-
### `bun add`
|
|
142
|
-
|
|
143
|
-
To add a particular package:
|
|
144
|
-
|
|
145
|
-
```bash
|
|
146
|
-
$ bun add preact
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
To specify a version, version range, or tag:
|
|
150
|
-
|
|
151
|
-
```bash
|
|
152
|
-
$ bun add zod@3.20.0
|
|
153
|
-
$ bun add zod@^3.0.0
|
|
154
|
-
$ bun add zod@latest
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
To add a package as a dev dependency (`"devDependencies"`):
|
|
158
|
-
|
|
159
|
-
```bash
|
|
160
|
-
$ bun add --dev @types/react
|
|
161
|
-
$ bun add -d @types/react
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
To add a package as an optional dependency (`"optionalDependencies"`):
|
|
165
|
-
|
|
166
|
-
```bash
|
|
167
|
-
$ bun add --optional lodash
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
To add a package as a peer dependency (`"peerDependencies"`):
|
|
171
|
-
|
|
172
|
-
```bash
|
|
173
|
-
$ bun add --peer @types/bun
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
To install a package globally:
|
|
177
|
-
|
|
178
|
-
```bash
|
|
179
|
-
$ bun add --global cowsay # or `bun add -g cowsay`
|
|
180
|
-
$ cowsay "Bun!"
|
|
181
|
-
______
|
|
182
|
-
< Bun! >
|
|
183
|
-
------
|
|
184
|
-
\ ^__^
|
|
185
|
-
\ (oo)\_______
|
|
186
|
-
(__)\ )\/\
|
|
187
|
-
||----w |
|
|
188
|
-
|| ||
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
{% details summary="Configuring global installation behavior" %}
|
|
192
|
-
|
|
193
|
-
```toml
|
|
194
|
-
[install]
|
|
195
|
-
# where `bun install --global` installs packages
|
|
196
|
-
globalDir = "~/.bun/install/global"
|
|
197
|
-
|
|
198
|
-
# where globally-installed package bins are linked
|
|
199
|
-
globalBinDir = "~/.bun/bin"
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
{% /details %}
|
|
203
|
-
To view a complete list of options for a given command:
|
|
204
|
-
|
|
205
|
-
```bash
|
|
206
|
-
$ bun add --help
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
### `bun remove`
|
|
210
|
-
|
|
211
|
-
To remove a dependency:
|
|
212
|
-
|
|
213
|
-
```bash
|
|
214
|
-
$ bun remove preact
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
## Git dependencies
|
|
218
|
-
|
|
219
|
-
To add a dependency from a git repository:
|
|
220
|
-
|
|
221
|
-
```bash
|
|
222
|
-
$ bun install git@github.com:moment/moment.git
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
Bun supports a variety of protocols, including [`github`](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#github-urls), [`git`](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#git-urls-as-dependencies), `git+ssh`, `git+https`, and many more.
|
|
226
|
-
|
|
227
|
-
```json
|
|
228
|
-
{
|
|
229
|
-
"dependencies": {
|
|
230
|
-
"dayjs": "git+https://github.com/iamkun/dayjs.git",
|
|
231
|
-
"lodash": "git+ssh://github.com/lodash/lodash.git#4.17.21",
|
|
232
|
-
"moment": "git@github.com:moment/moment.git",
|
|
233
|
-
"zod": "github:colinhacks/zod"
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
## Tarball dependencies
|
|
239
|
-
|
|
240
|
-
A package name can correspond to a publicly hosted `.tgz` file. During `bun install`, Bun will download and install the package from the specified tarball URL, rather than from the package registry.
|
|
241
|
-
|
|
242
|
-
```json#package.json
|
|
243
|
-
{
|
|
244
|
-
"dependencies": {
|
|
245
|
-
"zod": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz"
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
```
|
package/docs/install/isolated.md
DELETED
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
Bun provides an alternative package installation strategy called **isolated installs** that creates strict dependency isolation similar to pnpm's approach. This mode prevents phantom dependencies and ensures reproducible, deterministic builds.
|
|
2
|
-
|
|
3
|
-
## What are isolated installs?
|
|
4
|
-
|
|
5
|
-
Isolated installs create a non-hoisted dependency structure where packages can only access their explicitly declared dependencies. This differs from the traditional "hoisted" installation strategy used by npm and Yarn, where dependencies are flattened into a shared `node_modules` directory.
|
|
6
|
-
|
|
7
|
-
### Key benefits
|
|
8
|
-
|
|
9
|
-
- **Prevents phantom dependencies** — Packages cannot accidentally import dependencies they haven't declared
|
|
10
|
-
- **Deterministic resolution** — Same dependency tree regardless of what else is installed
|
|
11
|
-
- **Better for monorepos** — Workspace isolation prevents cross-contamination between packages
|
|
12
|
-
- **Reproducible builds** — More predictable resolution behavior across environments
|
|
13
|
-
|
|
14
|
-
## Using isolated installs
|
|
15
|
-
|
|
16
|
-
### Command line
|
|
17
|
-
|
|
18
|
-
Use the `--linker` flag to specify the installation strategy:
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
# Use isolated installs
|
|
22
|
-
$ bun install --linker isolated
|
|
23
|
-
|
|
24
|
-
# Use traditional hoisted installs
|
|
25
|
-
$ bun install --linker hoisted
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### Configuration file
|
|
29
|
-
|
|
30
|
-
Set the default linker strategy in your `bunfig.toml`:
|
|
31
|
-
|
|
32
|
-
```toml
|
|
33
|
-
[install]
|
|
34
|
-
linker = "isolated"
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### Default behavior
|
|
38
|
-
|
|
39
|
-
- **Workspaces**: Bun uses **isolated** installs by default to prevent hoisting-related bugs
|
|
40
|
-
- **Single projects**: Bun uses **hoisted** installs by default
|
|
41
|
-
|
|
42
|
-
To override the default, use `--linker hoisted` or `--linker isolated`, or set it in your configuration file.
|
|
43
|
-
|
|
44
|
-
## How isolated installs work
|
|
45
|
-
|
|
46
|
-
### Directory structure
|
|
47
|
-
|
|
48
|
-
Instead of hoisting dependencies, isolated installs create a two-tier structure:
|
|
49
|
-
|
|
50
|
-
```
|
|
51
|
-
node_modules/
|
|
52
|
-
├── .bun/ # Central package store
|
|
53
|
-
│ ├── package@1.0.0/ # Versioned package installations
|
|
54
|
-
│ │ └── node_modules/
|
|
55
|
-
│ │ └── package/ # Actual package files
|
|
56
|
-
│ ├── @scope+package@2.1.0/ # Scoped packages (+ replaces /)
|
|
57
|
-
│ │ └── node_modules/
|
|
58
|
-
│ │ └── @scope/
|
|
59
|
-
│ │ └── package/
|
|
60
|
-
│ └── ...
|
|
61
|
-
└── package-name -> .bun/package@1.0.0/node_modules/package # Symlinks
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
### Resolution algorithm
|
|
65
|
-
|
|
66
|
-
1. **Central store** — All packages are installed in `node_modules/.bun/package@version/` directories
|
|
67
|
-
2. **Symlinks** — Top-level `node_modules` contains symlinks pointing to the central store
|
|
68
|
-
3. **Peer resolution** — Complex peer dependencies create specialized directory names
|
|
69
|
-
4. **Deduplication** — Packages with identical package IDs and peer dependency sets are shared
|
|
70
|
-
|
|
71
|
-
### Workspace handling
|
|
72
|
-
|
|
73
|
-
In monorepos, workspace dependencies are handled specially:
|
|
74
|
-
|
|
75
|
-
- **Workspace packages** — Symlinked directly to their source directories, not the store
|
|
76
|
-
- **Workspace dependencies** — Can access other workspace packages in the monorepo
|
|
77
|
-
- **External dependencies** — Installed in the isolated store with proper isolation
|
|
78
|
-
|
|
79
|
-
## Comparison with hoisted installs
|
|
80
|
-
|
|
81
|
-
| Aspect | Hoisted (npm/Yarn) | Isolated (pnpm-like) |
|
|
82
|
-
| ------------------------- | ------------------------------------------ | --------------------------------------- |
|
|
83
|
-
| **Dependency access** | Packages can access any hoisted dependency | Packages only see declared dependencies |
|
|
84
|
-
| **Phantom dependencies** | ❌ Possible | ✅ Prevented |
|
|
85
|
-
| **Disk usage** | ✅ Lower (shared installs) | ✅ Similar (uses symlinks) |
|
|
86
|
-
| **Determinism** | ❌ Less deterministic | ✅ More deterministic |
|
|
87
|
-
| **Node.js compatibility** | ✅ Standard behavior | ✅ Compatible via symlinks |
|
|
88
|
-
| **Best for** | Single projects, legacy code | Monorepos, strict dependency management |
|
|
89
|
-
|
|
90
|
-
## Advanced features
|
|
91
|
-
|
|
92
|
-
### Peer dependency handling
|
|
93
|
-
|
|
94
|
-
Isolated installs handle peer dependencies through sophisticated resolution:
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
# Package with peer dependencies creates specialized paths
|
|
98
|
-
node_modules/.bun/package@1.0.0_react@18.2.0/
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
The directory name encodes both the package version and its peer dependency versions, ensuring each unique combination gets its own installation.
|
|
102
|
-
|
|
103
|
-
### Backend strategies
|
|
104
|
-
|
|
105
|
-
Bun uses different file operation strategies for performance:
|
|
106
|
-
|
|
107
|
-
- **Clonefile** (macOS) — Copy-on-write filesystem clones for maximum efficiency
|
|
108
|
-
- **Hardlink** (Linux/Windows) — Hardlinks to save disk space
|
|
109
|
-
- **Copyfile** (fallback) — Full file copies when other methods aren't available
|
|
110
|
-
|
|
111
|
-
### Debugging isolated installs
|
|
112
|
-
|
|
113
|
-
Enable verbose logging to understand the installation process:
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
$ bun install --linker isolated --verbose
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
This shows:
|
|
120
|
-
|
|
121
|
-
- Store entry creation
|
|
122
|
-
- Symlink operations
|
|
123
|
-
- Peer dependency resolution
|
|
124
|
-
- Deduplication decisions
|
|
125
|
-
|
|
126
|
-
## Troubleshooting
|
|
127
|
-
|
|
128
|
-
### Compatibility issues
|
|
129
|
-
|
|
130
|
-
Some packages may not work correctly with isolated installs due to:
|
|
131
|
-
|
|
132
|
-
- **Hardcoded paths** — Packages that assume a flat `node_modules` structure
|
|
133
|
-
- **Dynamic imports** — Runtime imports that don't follow Node.js resolution
|
|
134
|
-
- **Build tools** — Tools that scan `node_modules` directly
|
|
135
|
-
|
|
136
|
-
If you encounter issues, you can:
|
|
137
|
-
|
|
138
|
-
1. **Switch to hoisted mode** for specific projects:
|
|
139
|
-
|
|
140
|
-
```bash
|
|
141
|
-
$ bun install --linker hoisted
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
2. **Report compatibility issues** to help improve isolated install support
|
|
145
|
-
|
|
146
|
-
### Performance considerations
|
|
147
|
-
|
|
148
|
-
- **Install time** — May be slightly slower due to symlink operations
|
|
149
|
-
- **Disk usage** — Similar to hoisted (uses symlinks, not file copies)
|
|
150
|
-
- **Memory usage** — Higher during install due to complex peer resolution
|
|
151
|
-
|
|
152
|
-
## Migration guide
|
|
153
|
-
|
|
154
|
-
### From npm/Yarn
|
|
155
|
-
|
|
156
|
-
```bash
|
|
157
|
-
# Remove existing node_modules and lockfiles
|
|
158
|
-
$ rm -rf node_modules package-lock.json yarn.lock
|
|
159
|
-
|
|
160
|
-
# Install with isolated linker
|
|
161
|
-
$ bun install --linker isolated
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
### From pnpm
|
|
165
|
-
|
|
166
|
-
Isolated installs are conceptually similar to pnpm, so migration should be straightforward:
|
|
167
|
-
|
|
168
|
-
```bash
|
|
169
|
-
# Remove pnpm files
|
|
170
|
-
$ rm -rf node_modules pnpm-lock.yaml
|
|
171
|
-
|
|
172
|
-
# Install with Bun's isolated linker
|
|
173
|
-
$ bun install --linker isolated
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
The main difference is that Bun uses symlinks in `node_modules` while pnpm uses a global store with symlinks.
|
|
177
|
-
|
|
178
|
-
## When to use isolated installs
|
|
179
|
-
|
|
180
|
-
**Isolated installs are the default for workspaces.** You may want to explicitly enable them for single projects when:
|
|
181
|
-
|
|
182
|
-
- Strict dependency management is required
|
|
183
|
-
- Preventing phantom dependencies is important
|
|
184
|
-
- Building libraries that need deterministic dependencies
|
|
185
|
-
|
|
186
|
-
**Switch to hoisted installs (including for workspaces) when:**
|
|
187
|
-
|
|
188
|
-
- Working with legacy code that assumes flat `node_modules`
|
|
189
|
-
- Compatibility with existing build tools is required
|
|
190
|
-
- Working in environments where symlinks aren't well supported
|
|
191
|
-
- You prefer the simpler traditional npm behavior
|
|
192
|
-
|
|
193
|
-
## Related documentation
|
|
194
|
-
|
|
195
|
-
- [Package manager > Workspaces](https://bun.com/docs/install/workspaces) — Monorepo workspace management
|
|
196
|
-
- [Package manager > Lockfile](https://bun.com/docs/install/lockfile) — Understanding Bun's lockfile format
|
|
197
|
-
- [CLI > install](https://bun.com/docs/cli/install) — Complete `bun install` command reference
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
Packages on `npm` can define _lifecycle scripts_ in their `package.json`. Some of the most common are below, but there are [many others](https://docs.npmjs.com/cli/v10/using-npm/scripts).
|
|
2
|
-
|
|
3
|
-
- `preinstall`: Runs before the package is installed
|
|
4
|
-
- `postinstall`: Runs after the package is installed
|
|
5
|
-
- `preuninstall`: Runs before the package is uninstalled
|
|
6
|
-
- `prepublishOnly`: Runs before the package is published
|
|
7
|
-
|
|
8
|
-
These scripts are arbitrary shell commands that the package manager is expected to read and execute at the appropriate time. But executing arbitrary scripts represents a potential security risk, so—unlike other `npm` clients—Bun does not execute arbitrary lifecycle scripts by default.
|
|
9
|
-
|
|
10
|
-
## `postinstall`
|
|
11
|
-
|
|
12
|
-
The `postinstall` script is particularly important. It's widely used to build or install platform-specific binaries for packages that are implemented as [native Node.js add-ons](https://nodejs.org/api/addons.html). For example, `node-sass` is a popular package that uses `postinstall` to build a native binary for Sass.
|
|
13
|
-
|
|
14
|
-
```json
|
|
15
|
-
{
|
|
16
|
-
"name": "my-app",
|
|
17
|
-
"version": "1.0.0",
|
|
18
|
-
"dependencies": {
|
|
19
|
-
"node-sass": "^6.0.1"
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## `trustedDependencies`
|
|
25
|
-
|
|
26
|
-
Instead of executing arbitrary scripts, Bun uses a "default-secure" approach. You can add certain packages to an allow list, and Bun will execute lifecycle scripts for those packages. To tell Bun to allow lifecycle scripts for a particular package, add the package name to `trustedDependencies` array in your `package.json`.
|
|
27
|
-
|
|
28
|
-
```json-diff
|
|
29
|
-
{
|
|
30
|
-
"name": "my-app",
|
|
31
|
-
"version": "1.0.0",
|
|
32
|
-
+ "trustedDependencies": ["node-sass"]
|
|
33
|
-
}
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
Once added to `trustedDependencies`, install/re-install the package. Bun will read this field and run lifecycle scripts for `my-trusted-package`.
|
|
37
|
-
|
|
38
|
-
As of Bun v1.0.16, the top 500 npm packages with lifecycle scripts are allowed by default. You can see the full list [here](https://github.com/oven-sh/bun/blob/main/src/install/default-trusted-dependencies.txt).
|
|
39
|
-
|
|
40
|
-
## `--ignore-scripts`
|
|
41
|
-
|
|
42
|
-
To disable lifecycle scripts for all packages, use the `--ignore-scripts` flag.
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
$ bun install --ignore-scripts
|
|
46
|
-
```
|
package/docs/install/lockfile.md
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
Running `bun install` will create a lockfile called `bun.lock`.
|
|
2
|
-
|
|
3
|
-
#### Should it be committed to git?
|
|
4
|
-
|
|
5
|
-
Yes
|
|
6
|
-
|
|
7
|
-
#### Generate a lockfile without installing?
|
|
8
|
-
|
|
9
|
-
To generate a lockfile without installing to `node_modules` you can use the `--lockfile-only` flag. The lockfile will always be saved to disk, even if it is up-to-date with the `package.json`(s) for your project.
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
$ bun install --lockfile-only
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
{% callout %}
|
|
16
|
-
**Note** - using `--lockfile-only` will still populate the global install cache with registry metadata and git/tarball dependencies.
|
|
17
|
-
{% /callout %}
|
|
18
|
-
|
|
19
|
-
#### Can I opt out?
|
|
20
|
-
|
|
21
|
-
To install without creating a lockfile:
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
$ bun install --no-save
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
To install a Yarn lockfile _in addition_ to `bun.lock`.
|
|
28
|
-
|
|
29
|
-
{% codetabs %}
|
|
30
|
-
|
|
31
|
-
```bash#CLI flag
|
|
32
|
-
$ bun install --yarn
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
```toml#bunfig.toml
|
|
36
|
-
[install.lockfile]
|
|
37
|
-
# whether to save a non-Bun lockfile alongside bun.lock
|
|
38
|
-
# only "yarn" is supported
|
|
39
|
-
print = "yarn"
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
{% /codetabs %}
|
|
43
|
-
|
|
44
|
-
#### Text-based lockfile
|
|
45
|
-
|
|
46
|
-
Bun v1.2 changed the default lockfile format to the text-based `bun.lock`. Existing binary `bun.lockb` lockfiles can be migrated to the new format by running `bun install --save-text-lockfile --frozen-lockfile --lockfile-only` and deleting `bun.lockb`.
|
|
47
|
-
|
|
48
|
-
More information about the new lockfile format can be found on [our blogpost](https://bun.com/blog/bun-lock-text-lockfile).
|
|
49
|
-
|
|
50
|
-
#### Automatic lockfile migration
|
|
51
|
-
|
|
52
|
-
When running `bun install` in a project without a `bun.lock`, Bun automatically migrates existing lockfiles:
|
|
53
|
-
|
|
54
|
-
- `yarn.lock` (v1)
|
|
55
|
-
- `package-lock.json` (npm)
|
|
56
|
-
- `pnpm-lock.yaml` (pnpm)
|
|
57
|
-
|
|
58
|
-
The original lockfile is preserved and can be removed manually after verification.
|
package/docs/install/npmrc.md
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
Bun supports loading configuration options from [`.npmrc`](https://docs.npmjs.com/cli/v10/configuring-npm/npmrc) files, allowing you to reuse existing registry/scope configurations.
|
|
2
|
-
|
|
3
|
-
{% callout %}
|
|
4
|
-
|
|
5
|
-
**NOTE**: We recommend migrating your `.npmrc` file to Bun's [`bunfig.toml`](https://bun.com/docs/runtime/bunfig) format, as it provides more flexible options and can let you configure Bun-specific options.
|
|
6
|
-
|
|
7
|
-
{% /callout %}
|
|
8
|
-
|
|
9
|
-
## Supported options
|
|
10
|
-
|
|
11
|
-
### `registry`: Set the default registry
|
|
12
|
-
|
|
13
|
-
The default registry is used to resolve packages, its default value is `npm`'s official registry (`https://registry.npmjs.org/`).
|
|
14
|
-
|
|
15
|
-
To change it, you can set the `registry` option in `.npmrc`:
|
|
16
|
-
|
|
17
|
-
```ini
|
|
18
|
-
registry=http://localhost:4873/
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
The equivalent `bunfig.toml` option is [`install.registry`](https://bun.com/docs/runtime/bunfig#install-registry):
|
|
22
|
-
|
|
23
|
-
```toml
|
|
24
|
-
install.registry = "http://localhost:4873/"
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
### `@<scope>:registry`: Set the registry for a specific scope
|
|
28
|
-
|
|
29
|
-
Allows you to set the registry for a specific scope:
|
|
30
|
-
|
|
31
|
-
```ini
|
|
32
|
-
@myorg:registry=http://localhost:4873/
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
The equivalent `bunfig.toml` option is to add a key in [`install.scopes`](https://bun.com/docs/runtime/bunfig#install-registry):
|
|
36
|
-
|
|
37
|
-
```toml
|
|
38
|
-
[install.scopes]
|
|
39
|
-
myorg = "http://localhost:4873/"
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### `//<registry_url>/:<key>=<value>`: Configure options for a specific registry
|
|
43
|
-
|
|
44
|
-
Allows you to set options for a specific registry:
|
|
45
|
-
|
|
46
|
-
```ini
|
|
47
|
-
# set an auth token for the registry
|
|
48
|
-
# ${...} is a placeholder for environment variables
|
|
49
|
-
//http://localhost:4873/:_authToken=${NPM_TOKEN}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
# or you could set a username and password
|
|
53
|
-
# note that the password is base64 encoded
|
|
54
|
-
//http://localhost:4873/:username=myusername
|
|
55
|
-
|
|
56
|
-
//http://localhost:4873/:_password=${NPM_PASSWORD}
|
|
57
|
-
|
|
58
|
-
# or use _auth, which is your username and password
|
|
59
|
-
# combined into a single string, which is then base 64 encoded
|
|
60
|
-
//http://localhost:4873/:_auth=${NPM_AUTH}
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
The following options are supported:
|
|
64
|
-
|
|
65
|
-
- `_authToken`
|
|
66
|
-
- `username`
|
|
67
|
-
- `_password` (base64 encoded password)
|
|
68
|
-
- `_auth` (base64 encoded username:password, e.g. `btoa(username + ":" + password)`)
|
|
69
|
-
|
|
70
|
-
The equivalent `bunfig.toml` option is to add a key in [`install.scopes`](https://bun.com/docs/runtime/bunfig#install-registry):
|
|
71
|
-
|
|
72
|
-
```toml
|
|
73
|
-
[install.scopes]
|
|
74
|
-
myorg = { url = "http://localhost:4873/", username = "myusername", password = "$NPM_PASSWORD" }
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### `link-workspace-packages`: Control workspace package installation
|
|
78
|
-
|
|
79
|
-
Controls how workspace packages are installed when available locally:
|
|
80
|
-
|
|
81
|
-
```ini
|
|
82
|
-
link-workspace-packages=true
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
The equivalent `bunfig.toml` option is [`install.linkWorkspacePackages`](https://bun.com/docs/runtime/bunfig#install-linkworkspacepackages):
|
|
86
|
-
|
|
87
|
-
```toml
|
|
88
|
-
[install]
|
|
89
|
-
linkWorkspacePackages = true
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### `save-exact`: Save exact versions
|
|
93
|
-
|
|
94
|
-
Always saves exact versions without the `^` prefix:
|
|
95
|
-
|
|
96
|
-
```ini
|
|
97
|
-
save-exact=true
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
The equivalent `bunfig.toml` option is [`install.exact`](https://bun.com/docs/runtime/bunfig#install-exact):
|
|
101
|
-
|
|
102
|
-
```toml
|
|
103
|
-
[install]
|
|
104
|
-
exact = true
|
|
105
|
-
```
|