bun-types 1.3.2-canary.20251105T140650 → 1.3.2
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 +102 -6
- package/docs/README.md +28 -0
- package/docs/bundler/bytecode.mdx +465 -0
- package/docs/bundler/{css.md → css.mdx} +97 -101
- package/docs/bundler/esbuild.mdx +253 -0
- package/docs/bundler/{executables.md → executables.mdx} +130 -221
- package/docs/bundler/fullstack.mdx +1064 -0
- package/docs/bundler/{hmr.md → hot-reloading.mdx} +74 -79
- package/docs/bundler/{html.md → html-static.mdx} +148 -111
- package/docs/bundler/index.mdx +1499 -0
- package/docs/bundler/loaders.mdx +356 -0
- package/docs/bundler/{macros.md → macros.mdx} +83 -84
- package/docs/bundler/minifier.mdx +1306 -0
- package/docs/bundler/plugins.mdx +411 -0
- package/docs/feedback.mdx +85 -0
- package/docs/guides/binary/{arraybuffer-to-array.md → arraybuffer-to-array.mdx} +3 -1
- package/docs/guides/binary/{arraybuffer-to-blob.md → arraybuffer-to-blob.mdx} +3 -1
- package/docs/guides/binary/{arraybuffer-to-buffer.md → arraybuffer-to-buffer.mdx} +3 -1
- package/docs/guides/binary/{arraybuffer-to-string.md → arraybuffer-to-string.mdx} +3 -1
- package/docs/guides/binary/{arraybuffer-to-typedarray.md → arraybuffer-to-typedarray.mdx} +3 -1
- package/docs/guides/binary/{blob-to-arraybuffer.md → blob-to-arraybuffer.mdx} +3 -1
- package/docs/guides/binary/{blob-to-dataview.md → blob-to-dataview.mdx} +3 -1
- package/docs/guides/binary/{blob-to-stream.md → blob-to-stream.mdx} +3 -1
- package/docs/guides/binary/{blob-to-string.md → blob-to-string.mdx} +3 -1
- package/docs/guides/binary/{blob-to-typedarray.md → blob-to-typedarray.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-arraybuffer.md → buffer-to-arraybuffer.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-blob.md → buffer-to-blob.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-readablestream.md → buffer-to-readablestream.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-string.md → buffer-to-string.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-typedarray.md → buffer-to-typedarray.mdx} +3 -1
- package/docs/guides/binary/{dataview-to-string.md → dataview-to-string.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-arraybuffer.md → typedarray-to-arraybuffer.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-blob.md → typedarray-to-blob.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-buffer.md → typedarray-to-buffer.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-dataview.md → typedarray-to-dataview.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-readablestream.md → typedarray-to-readablestream.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-string.md → typedarray-to-string.mdx} +3 -1
- package/docs/guides/deployment/aws-lambda.mdx +204 -0
- package/docs/guides/deployment/digital-ocean.mdx +161 -0
- package/docs/guides/deployment/google-cloud-run.mdx +197 -0
- package/docs/guides/deployment/{railway.md → railway.mdx} +42 -54
- package/docs/guides/deployment/render.mdx +82 -0
- package/docs/guides/deployment/vercel.mdx +99 -0
- package/docs/guides/ecosystem/{astro.md → astro.mdx} +16 -6
- package/docs/guides/ecosystem/{discordjs.md → discordjs.mdx} +21 -18
- package/docs/guides/ecosystem/{docker.md → docker.mdx} +25 -14
- package/docs/guides/ecosystem/{drizzle.md → drizzle.mdx} +32 -22
- package/docs/guides/ecosystem/{edgedb.md → edgedb.mdx} +63 -34
- package/docs/guides/ecosystem/{elysia.md → elysia.mdx} +11 -11
- package/docs/guides/ecosystem/{express.md → express.mdx} +12 -9
- package/docs/guides/ecosystem/{hono.md → hono.mdx} +16 -8
- package/docs/guides/ecosystem/{mongoose.md → mongoose.mdx} +26 -21
- package/docs/guides/ecosystem/{neon-drizzle.md → neon-drizzle.mdx} +49 -35
- package/docs/guides/ecosystem/{neon-serverless-postgres.md → neon-serverless-postgres.mdx} +16 -11
- package/docs/guides/ecosystem/{nextjs.md → nextjs.mdx} +18 -10
- package/docs/guides/ecosystem/{nuxt.md → nuxt.mdx} +45 -11
- package/docs/guides/ecosystem/{pm2.md → pm2.mdx} +7 -9
- package/docs/guides/ecosystem/prisma-postgres.mdx +169 -0
- package/docs/guides/ecosystem/prisma.mdx +164 -0
- package/docs/guides/ecosystem/{qwik.md → qwik.mdx} +18 -11
- package/docs/guides/ecosystem/{react.md → react.mdx} +9 -7
- package/docs/guides/ecosystem/{remix.md → remix.mdx} +45 -26
- package/docs/guides/ecosystem/{sentry.md → sentry.mdx} +7 -5
- package/docs/guides/ecosystem/{solidstart.md → solidstart.mdx} +21 -13
- package/docs/guides/ecosystem/{ssr-react.md → ssr-react.mdx} +9 -11
- package/docs/guides/ecosystem/{stric.md → stric.mdx} +16 -17
- package/docs/guides/ecosystem/{sveltekit.md → sveltekit.mdx} +42 -29
- package/docs/guides/ecosystem/{systemd.md → systemd.mdx} +27 -26
- package/docs/guides/ecosystem/upstash.mdx +87 -0
- package/docs/guides/ecosystem/{vite.md → vite.mdx} +20 -14
- package/docs/guides/html-rewriter/{extract-links.md → extract-links.mdx} +11 -7
- package/docs/guides/html-rewriter/{extract-social-meta.md → extract-social-meta.mdx} +6 -2
- package/docs/guides/http/{cluster.md → cluster.mdx} +10 -7
- package/docs/guides/http/{fetch-unix.md → fetch-unix.mdx} +5 -3
- package/docs/guides/http/{fetch.md → fetch.mdx} +5 -3
- package/docs/guides/http/{file-uploads.md → file-uploads.mdx} +18 -15
- package/docs/guides/http/{hot.md → hot.mdx} +9 -7
- package/docs/guides/http/{proxy.md → proxy.mdx} +7 -5
- package/docs/guides/http/{server.md → server.mdx} +4 -2
- package/docs/guides/http/{simple.md → simple.mdx} +4 -2
- package/docs/guides/http/{stream-file.md → stream-file.mdx} +6 -4
- package/docs/guides/http/{stream-iterator.md → stream-iterator.mdx} +5 -3
- package/docs/guides/http/{stream-node-streams-in-bun.md → stream-node-streams-in-bun.mdx} +4 -2
- package/docs/guides/http/{tls.md → tls.mdx} +5 -3
- package/docs/guides/index.mdx +10 -0
- package/docs/guides/install/{add-dev.md → add-dev.mdx} +8 -6
- package/docs/guides/install/add-git.mdx +38 -0
- package/docs/guides/install/{add-optional.md → add-optional.mdx} +7 -5
- package/docs/guides/install/{add-peer.md → add-peer.mdx} +13 -11
- package/docs/guides/install/{add-tarball.md → add-tarball.mdx} +7 -5
- package/docs/guides/install/{add.md → add.mdx} +12 -10
- package/docs/guides/install/{azure-artifacts.md → azure-artifacts.mdx} +15 -12
- package/docs/guides/{runtime/cicd.md → install/cicd.mdx} +13 -13
- package/docs/guides/install/{custom-registry.md → custom-registry.mdx} +6 -4
- package/docs/guides/install/{from-npm-install-to-bun-install.md → from-npm-install-to-bun-install.mdx} +50 -34
- package/docs/guides/install/{git-diff-bun-lockfile.md → git-diff-bun-lockfile.mdx} +14 -11
- package/docs/guides/install/{jfrog-artifactory.md → jfrog-artifactory.mdx} +4 -4
- package/docs/guides/install/{npm-alias.md → npm-alias.mdx} +6 -4
- package/docs/guides/install/{registry-scope.md → registry-scope.mdx} +6 -4
- package/docs/guides/install/{trusted.md → trusted.mdx} +22 -18
- package/docs/guides/install/{workspaces.md → workspaces.mdx} +13 -13
- package/docs/guides/install/{yarnlock.md → yarnlock.mdx} +15 -9
- package/docs/guides/process/{argv.md → argv.mdx} +17 -9
- package/docs/guides/process/{ctrl-c.md → ctrl-c.mdx} +4 -2
- package/docs/guides/process/{ipc.md → ipc.mdx} +13 -10
- package/docs/guides/process/{nanoseconds.md → nanoseconds.mdx} +3 -1
- package/docs/guides/process/{os-signals.md → os-signals.mdx} +3 -1
- package/docs/guides/process/{spawn-stderr.md → spawn-stderr.mdx} +4 -1
- package/docs/guides/process/{spawn-stdout.md → spawn-stdout.mdx} +3 -1
- package/docs/guides/process/{spawn.md → spawn.mdx} +3 -1
- package/docs/guides/process/{stdin.md → stdin.mdx} +15 -7
- package/docs/guides/read-file/{arraybuffer.md → arraybuffer.mdx} +5 -3
- package/docs/guides/read-file/{buffer.md → buffer.mdx} +4 -2
- package/docs/guides/read-file/{exists.md → exists.mdx} +4 -2
- package/docs/guides/read-file/{json.md → json.mdx} +4 -2
- package/docs/guides/read-file/{mime.md → mime.mdx} +3 -1
- package/docs/guides/read-file/{stream.md → stream.mdx} +3 -1
- package/docs/guides/read-file/{string.md → string.mdx} +3 -1
- package/docs/guides/read-file/{uint8array.md → uint8array.mdx} +3 -1
- package/docs/guides/read-file/{watch.md → watch.mdx} +6 -8
- package/docs/guides/runtime/{build-time-constants.md → build-time-constants.mdx} +24 -22
- package/docs/guides/{install/cicd.md → runtime/cicd.mdx} +11 -7
- package/docs/guides/runtime/{codesign-macos-executable.md → codesign-macos-executable.mdx} +14 -9
- package/docs/guides/runtime/{define-constant.md → define-constant.mdx} +20 -16
- package/docs/guides/runtime/{delete-directory.md → delete-directory.mdx} +5 -3
- package/docs/guides/runtime/{delete-file.md → delete-file.mdx} +4 -2
- package/docs/guides/runtime/{heap-snapshot.md → heap-snapshot.mdx} +5 -3
- package/docs/guides/runtime/{import-html.md → import-html.mdx} +4 -2
- package/docs/guides/runtime/{import-json.md → import-json.mdx} +6 -4
- package/docs/guides/runtime/{import-toml.md → import-toml.mdx} +5 -3
- package/docs/guides/runtime/{import-yaml.md → import-yaml.mdx} +9 -7
- package/docs/guides/runtime/{read-env.md → read-env.mdx} +10 -5
- package/docs/guides/runtime/{set-env.md → set-env.mdx} +14 -10
- package/docs/guides/runtime/{shell.md → shell.mdx} +6 -4
- package/docs/guides/runtime/{timezone.md → timezone.mdx} +10 -7
- package/docs/guides/runtime/{tsconfig-paths.md → tsconfig-paths.mdx} +5 -3
- package/docs/guides/runtime/{typescript.md → typescript.mdx} +8 -6
- package/docs/guides/runtime/{vscode-debugger.md → vscode-debugger.mdx} +12 -11
- package/docs/guides/runtime/{web-debugger.md → web-debugger.mdx} +39 -18
- package/docs/guides/streams/{node-readable-to-arraybuffer.md → node-readable-to-arraybuffer.mdx} +3 -1
- package/docs/guides/streams/{node-readable-to-blob.md → node-readable-to-blob.mdx} +3 -1
- package/docs/guides/streams/{node-readable-to-json.md → node-readable-to-json.mdx} +3 -1
- package/docs/guides/streams/{node-readable-to-string.md → node-readable-to-string.mdx} +3 -1
- package/docs/guides/streams/{node-readable-to-uint8array.md → node-readable-to-uint8array.mdx} +3 -1
- package/docs/guides/streams/{to-array.md → to-array.mdx} +3 -1
- package/docs/guides/streams/{to-arraybuffer.md → to-arraybuffer.mdx} +3 -1
- package/docs/guides/streams/{to-blob.md → to-blob.mdx} +3 -1
- package/docs/guides/streams/{to-buffer.md → to-buffer.mdx} +3 -1
- package/docs/guides/streams/{to-json.md → to-json.mdx} +4 -2
- package/docs/guides/streams/{to-string.md → to-string.mdx} +3 -1
- package/docs/guides/streams/{to-typedarray.md → to-typedarray.mdx} +3 -1
- package/docs/guides/test/{bail.md → bail.mdx} +7 -5
- package/docs/guides/test/{coverage-threshold.md → coverage-threshold.mdx} +14 -7
- package/docs/guides/test/{coverage.md → coverage.mdx} +9 -4
- package/docs/guides/test/{happy-dom.md → happy-dom.mdx} +13 -8
- package/docs/guides/test/{migrate-from-jest.md → migrate-from-jest.mdx} +19 -37
- package/docs/guides/test/{mock-clock.md → mock-clock.mdx} +3 -1
- package/docs/guides/test/{mock-functions.md → mock-functions.mdx} +7 -5
- package/docs/guides/test/{rerun-each.md → rerun-each.mdx} +5 -3
- package/docs/guides/test/{run-tests.md → run-tests.mdx} +16 -11
- package/docs/guides/test/{skip-tests.md → skip-tests.mdx} +8 -4
- package/docs/guides/test/{snapshot.md → snapshot.mdx} +20 -13
- package/docs/guides/test/spy-on.mdx +49 -0
- package/docs/guides/test/{svelte-test.md → svelte-test.mdx} +16 -23
- package/docs/guides/test/{testing-library.md → testing-library.mdx} +18 -17
- package/docs/guides/test/{timeout.md → timeout.mdx} +5 -3
- package/docs/guides/test/{todo-tests.md → todo-tests.mdx} +13 -6
- package/docs/guides/test/{update-snapshots.md → update-snapshots.mdx} +9 -6
- package/docs/guides/test/{watch-mode.md → watch-mode.mdx} +9 -4
- package/docs/guides/util/{base64.md → base64.mdx} +3 -1
- package/docs/guides/util/{deep-equals.md → deep-equals.mdx} +5 -3
- package/docs/guides/util/{deflate.md → deflate.mdx} +3 -1
- package/docs/guides/util/{detect-bun.md → detect-bun.mdx} +3 -1
- package/docs/guides/util/{entrypoint.md → entrypoint.mdx} +4 -2
- package/docs/guides/util/{escape-html.md → escape-html.mdx} +3 -1
- package/docs/guides/util/{file-url-to-path.md → file-url-to-path.mdx} +3 -1
- package/docs/guides/util/{gzip.md → gzip.mdx} +3 -1
- package/docs/guides/util/{hash-a-password.md → hash-a-password.mdx} +3 -1
- package/docs/guides/util/{import-meta-dir.md → import-meta-dir.mdx} +4 -2
- package/docs/guides/util/{import-meta-file.md → import-meta-file.mdx} +4 -2
- package/docs/guides/util/{import-meta-path.md → import-meta-path.mdx} +4 -2
- package/docs/guides/util/{javascript-uuid.md → javascript-uuid.mdx} +3 -1
- package/docs/guides/util/{main.md → main.mdx} +19 -8
- package/docs/guides/util/{path-to-file-url.md → path-to-file-url.mdx} +3 -1
- package/docs/guides/util/{sleep.md → sleep.mdx} +3 -1
- package/docs/guides/util/{version.md → version.mdx} +6 -4
- package/docs/guides/util/{which-path-to-executable-bin.md → which-path-to-executable-bin.mdx} +4 -2
- package/docs/guides/websocket/{compression.md → compression.mdx} +5 -3
- package/docs/guides/websocket/{context.md → context.mdx} +9 -12
- package/docs/guides/websocket/{pubsub.md → pubsub.mdx} +5 -6
- package/docs/guides/websocket/{simple.md → simple.mdx} +5 -3
- package/docs/guides/write-file/{append.md → append.mdx} +3 -1
- package/docs/guides/write-file/{basic.md → basic.mdx} +3 -1
- package/docs/guides/write-file/{blob.md → blob.mdx} +3 -1
- package/docs/guides/write-file/{cat.md → cat.mdx} +4 -2
- package/docs/guides/write-file/{file-cp.md → file-cp.mdx} +3 -1
- package/docs/guides/write-file/{filesink.md → filesink.mdx} +3 -1
- package/docs/guides/write-file/{response.md → response.mdx} +3 -1
- package/docs/guides/write-file/{stdout.md → stdout.mdx} +3 -1
- package/docs/guides/write-file/{stream.md → stream.mdx} +3 -1
- package/docs/guides/write-file/{unlink.md → unlink.mdx} +3 -1
- package/docs/{index.md → index.mdx} +97 -41
- package/docs/installation.mdx +365 -0
- package/docs/{cli/bunx.md → pm/bunx.mdx} +25 -31
- package/docs/{install/catalogs.md → pm/catalogs.mdx} +18 -24
- package/docs/{cli/add.md → pm/cli/add.mdx} +61 -55
- package/docs/{install/audit.md → pm/cli/audit.mdx} +11 -8
- package/docs/{cli/install.md → pm/cli/install.mdx} +208 -81
- package/docs/{cli/link.md → pm/cli/link.mdx} +27 -19
- package/docs/{cli/outdated.md → pm/cli/outdated.mdx} +119 -12
- package/docs/{install/patch.md → pm/cli/patch.mdx} +25 -15
- package/docs/{cli/pm.md → pm/cli/pm.mdx} +96 -62
- package/docs/{cli/publish.md → pm/cli/publish.mdx} +38 -35
- package/docs/pm/cli/remove.mdx +16 -0
- package/docs/{cli/update.md → pm/cli/update.mdx} +26 -15
- package/docs/{cli/why.md → pm/cli/why.mdx} +27 -10
- package/docs/{cli/filter.md → pm/filter.mdx} +26 -14
- package/docs/{install/cache.md → pm/global-cache.mdx} +25 -12
- package/docs/{install/isolated.md → pm/isolated-installs.mdx} +32 -24
- package/docs/{install/lifecycle.md → pm/lifecycle.mdx} +20 -9
- package/docs/{install/lockfile.md → pm/lockfile.mdx} +18 -12
- package/docs/{install/npmrc.md → pm/npmrc.mdx} +30 -24
- package/docs/{install/overrides.md → pm/overrides.mdx} +47 -37
- package/docs/{install/registries.md → pm/scopes-registries.mdx} +8 -3
- package/docs/{install/security-scanner-api.md → pm/security-scanner-api.mdx} +22 -8
- package/docs/{install/workspaces.md → pm/workspaces.mdx} +17 -22
- package/docs/project/{benchmarking.md → benchmarking.mdx} +26 -11
- package/docs/project/{bindgen.md → bindgen.mdx} +12 -14
- package/docs/project/{building-windows.md → building-windows.mdx} +18 -47
- package/docs/project/{contributing.md → contributing.mdx} +56 -60
- package/docs/project/feedback.mdx +20 -0
- package/docs/project/license.mdx +78 -0
- package/docs/project/roadmap.mdx +8 -0
- package/docs/quickstart.mdx +240 -0
- package/docs/runtime/{autoimport.md → auto-install.mdx} +34 -31
- package/docs/{api/binary-data.md → runtime/binary-data.mdx} +77 -269
- package/docs/runtime/bun-apis.mdx +59 -0
- package/docs/runtime/{bunfig.md → bunfig.mdx} +95 -225
- package/docs/{api/cc.md → runtime/c-compiler.mdx} +16 -9
- package/docs/{api/spawn.md → runtime/child-process.mdx} +69 -119
- package/docs/{api/color.md → runtime/color.mdx} +6 -1
- package/docs/{api/console.md → runtime/console.mdx} +17 -7
- package/docs/{api/cookie.md → runtime/cookies.mdx} +24 -19
- package/docs/runtime/{debugger.md → debugger.mdx} +61 -51
- package/docs/runtime/environment-variables.mdx +214 -0
- package/docs/{api/ffi.md → runtime/ffi.mdx} +53 -45
- package/docs/{api/file-io.md → runtime/file-io.mdx} +41 -101
- package/docs/{api/file-system-router.md → runtime/file-system-router.mdx} +8 -2
- package/docs/{bundler/loaders.md → runtime/file-types.mdx} +56 -112
- package/docs/{api/glob.md → runtime/glob.mdx} +4 -1
- package/docs/runtime/globals.mdx +72 -0
- package/docs/{api/hashing.md → runtime/hashing.mdx} +18 -22
- package/docs/{api/html-rewriter.md → runtime/html-rewriter.mdx} +36 -30
- package/docs/runtime/http/cookies.mdx +79 -0
- package/docs/runtime/http/error-handling.mdx +40 -0
- package/docs/runtime/http/metrics.mdx +36 -0
- package/docs/runtime/http/routing.mdx +289 -0
- package/docs/runtime/http/server.mdx +647 -0
- package/docs/runtime/http/tls.mdx +101 -0
- package/docs/{api/websockets.md → runtime/http/websockets.mdx} +62 -231
- package/docs/{cli/run.md → runtime/index.mdx} +70 -108
- package/docs/runtime/jsx.mdx +115 -0
- package/docs/runtime/{modules.md → module-resolution.mdx} +83 -61
- package/docs/{api/dns.md → runtime/networking/dns.mdx} +23 -22
- package/docs/{api/fetch.md → runtime/networking/fetch.mdx} +10 -5
- package/docs/{api/tcp.md → runtime/networking/tcp.mdx} +59 -41
- package/docs/{api/udp.md → runtime/networking/udp.mdx} +14 -8
- package/docs/{api/node-api.md → runtime/node-api.mdx} +5 -0
- package/docs/runtime/{nodejs-apis.md → nodejs-compat.mdx} +9 -4
- package/docs/{bundler/plugins.md → runtime/plugins.mdx} +17 -61
- package/docs/{api/redis.md → runtime/redis.mdx} +65 -80
- package/docs/{api/s3.md → runtime/s3.mdx} +79 -66
- package/docs/{api/secrets.md → runtime/secrets.mdx} +27 -10
- package/docs/{api/semver.md → runtime/semver.mdx} +9 -4
- package/docs/runtime/{shell.md → shell.mdx} +52 -20
- package/docs/{api/sql.md → runtime/sql.mdx} +129 -99
- package/docs/{api/sqlite.md → runtime/sqlite.mdx} +162 -157
- package/docs/{api/streams.md → runtime/streams.mdx} +33 -31
- package/docs/{cli/bun-create.md → runtime/templating/create.mdx} +74 -143
- package/docs/{cli/init.md → runtime/templating/init.mdx} +24 -51
- package/docs/{api/transpiler.md → runtime/transpiler.mdx} +50 -38
- package/docs/{typescript.md → runtime/typescript.mdx} +7 -2
- package/docs/{api/utils.md → runtime/utils.mdx} +81 -50
- package/docs/runtime/{hot.md → watch-mode.mdx} +53 -37
- package/docs/runtime/web-apis.mdx +29 -0
- package/docs/{api/workers.md → runtime/workers.mdx} +28 -22
- package/docs/{api/yaml.md → runtime/yaml.mdx} +33 -232
- package/docs/snippets/cli/add.mdx +166 -0
- package/docs/snippets/cli/build.mdx +196 -0
- package/docs/snippets/cli/feedback.mdx +17 -0
- package/docs/snippets/cli/init.mdx +84 -0
- package/docs/snippets/cli/install.mdx +173 -0
- package/docs/snippets/cli/link.mdx +163 -0
- package/docs/snippets/cli/outdated.mdx +140 -0
- package/docs/snippets/cli/patch.mdx +171 -0
- package/docs/snippets/cli/publish.mdx +198 -0
- package/docs/snippets/cli/remove.mdx +146 -0
- package/docs/snippets/cli/run.mdx +293 -0
- package/docs/snippets/cli/test.mdx +100 -0
- package/docs/snippets/cli/update.mdx +144 -0
- package/docs/snippets/product-card.mdx +32 -0
- package/docs/snippets/product-tiles.mdx +94 -0
- package/docs/test/code-coverage.mdx +409 -0
- package/docs/test/configuration.mdx +467 -0
- package/docs/test/{time.md → dates-times.mdx} +23 -20
- package/docs/test/{discovery.md → discovery.mdx} +15 -10
- package/docs/test/dom.mdx +226 -0
- package/docs/{cli/test.md → test/index.mdx} +77 -94
- package/docs/test/lifecycle.mdx +348 -0
- package/docs/test/mocks.mdx +637 -0
- package/docs/test/{reporters.md → reporters.mdx} +15 -15
- package/docs/test/runtime-behavior.mdx +342 -0
- package/docs/test/snapshots.mdx +434 -0
- package/docs/test/writing-tests.mdx +635 -0
- package/docs/typescript.mdx +54 -0
- package/package.json +8 -6
- package/test.d.ts +2 -2
- package/docs/api/file.md +0 -19
- package/docs/api/globals.md +0 -387
- package/docs/api/http.md +0 -1408
- package/docs/api/import-meta.md +0 -69
- package/docs/benchmarks.md +0 -120
- package/docs/bun-flavored-toml.md +0 -42
- package/docs/bundler/css_modules.md +0 -145
- package/docs/bundler/fullstack.md +0 -418
- package/docs/bundler/index.md +0 -1735
- package/docs/bundler/intro.md +0 -75
- package/docs/bundler/vs-esbuild.md +0 -1127
- package/docs/cli/bun-completions.md +0 -3
- package/docs/cli/bun-install.md +0 -349
- package/docs/cli/bun-upgrade.md +0 -39
- package/docs/cli/info.md +0 -65
- package/docs/cli/patch-commit.md +0 -11
- package/docs/cli/remove.md +0 -7
- package/docs/cli/unlink.md +0 -9
- 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/ecosystem/prisma.md +0 -141
- package/docs/guides/ecosystem/render.md +0 -79
- package/docs/guides/install/add-git.md +0 -36
- package/docs/guides/test/spy-on.md +0 -46
- package/docs/install/index.md +0 -248
- package/docs/installation.md +0 -327
- package/docs/project/asan.md +0 -124
- 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/bun-apis.md +0 -207
- package/docs/runtime/env.md +0 -253
- package/docs/runtime/index.md +0 -312
- package/docs/runtime/jsx.md +0 -385
- package/docs/runtime/loaders.md +0 -130
- package/docs/runtime/plugins.md +0 -561
- 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/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/runtime-behavior.md +0 -95
- package/docs/test/snapshots.md +0 -68
- package/docs/test/writing.md +0 -825
|
@@ -1,40 +1,50 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
title: "bun install"
|
|
3
|
+
description: "Install packages with Bun's fast package manager"
|
|
4
|
+
---
|
|
2
5
|
|
|
3
|
-
|
|
6
|
+
import Install from "/snippets/cli/install.mdx";
|
|
4
7
|
|
|
5
|
-
|
|
8
|
+
## Basic Usage
|
|
6
9
|
|
|
7
|
-
|
|
10
|
+
```bash terminal icon="terminal"
|
|
11
|
+
bun install react
|
|
12
|
+
bun install react@19.1.1 # specific version
|
|
13
|
+
bun install react@latest # specific tag
|
|
14
|
+
```
|
|
8
15
|
|
|
9
|
-
|
|
16
|
+
The `bun` CLI contains a Node.js-compatible package manager designed to be a dramatically faster replacement for `npm`, `yarn`, and `pnpm`. It's a standalone tool that will work in pre-existing Node.js projects; if your project has a `package.json`, `bun install` can help you speed up your workflow.
|
|
10
17
|
|
|
11
|
-
|
|
18
|
+
<Note>
|
|
12
19
|
|
|
13
|
-
|
|
20
|
+
**⚡️ 25x faster** — Switch from `npm install` to `bun install` in any Node.js project to make your installations up to 25x faster.
|
|
14
21
|
|
|
15
|
-
|
|
22
|
+
<Frame>
|
|
23
|
+

|
|
25
|
+
</Frame>
|
|
16
26
|
|
|
17
|
-
|
|
27
|
+
</Note>
|
|
18
28
|
|
|
19
|
-
|
|
29
|
+
<Accordion title="For Linux users">
|
|
20
30
|
The recommended minimum Linux Kernel version is 5.6. If you're on Linux kernel 5.1 - 5.5, `bun install` will work, but HTTP requests will be slow due to a lack of support for io_uring's `connect()` operation.
|
|
21
31
|
|
|
22
32
|
If you're using Ubuntu 20.04, here's how to install a [newer kernel](https://wiki.ubuntu.com/Kernel/LTSEnablementStack):
|
|
23
33
|
|
|
24
|
-
```bash
|
|
34
|
+
```bash terminal icon="terminal"
|
|
25
35
|
# If this returns a version >= 5.6, you don't need to do anything
|
|
26
|
-
|
|
36
|
+
uname -r
|
|
27
37
|
|
|
28
38
|
# Install the official Ubuntu hardware enablement kernel
|
|
29
|
-
|
|
39
|
+
sudo apt install --install-recommends linux-generic-hwe-20.04
|
|
30
40
|
```
|
|
31
41
|
|
|
32
|
-
|
|
42
|
+
</Accordion>
|
|
33
43
|
|
|
34
44
|
To install all dependencies of a project:
|
|
35
45
|
|
|
36
|
-
```bash
|
|
37
|
-
|
|
46
|
+
```bash terminal icon="terminal"
|
|
47
|
+
bun install
|
|
38
48
|
```
|
|
39
49
|
|
|
40
50
|
Running `bun install` will:
|
|
@@ -43,89 +53,105 @@ Running `bun install` will:
|
|
|
43
53
|
- **Run** your project's `{pre|post}install` and `{pre|post}prepare` scripts at the appropriate time. For security reasons Bun _does not execute_ lifecycle scripts of installed dependencies.
|
|
44
54
|
- **Write** a `bun.lock` lockfile to the project root.
|
|
45
55
|
|
|
56
|
+
---
|
|
57
|
+
|
|
46
58
|
## Logging
|
|
47
59
|
|
|
48
60
|
To modify logging verbosity:
|
|
49
61
|
|
|
50
|
-
```bash
|
|
51
|
-
|
|
52
|
-
|
|
62
|
+
```bash terminal icon="terminal"
|
|
63
|
+
bun install --verbose # debug logging
|
|
64
|
+
bun install --silent # no logging
|
|
53
65
|
```
|
|
54
66
|
|
|
67
|
+
---
|
|
68
|
+
|
|
55
69
|
## Lifecycle scripts
|
|
56
70
|
|
|
57
71
|
Unlike other npm clients, Bun does not execute arbitrary lifecycle scripts like `postinstall` for installed dependencies. Executing arbitrary scripts represents a potential security risk.
|
|
58
72
|
|
|
59
73
|
To tell Bun to allow lifecycle scripts for a particular package, add the package to `trustedDependencies` in your package.json.
|
|
60
74
|
|
|
61
|
-
```json-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
75
|
+
```json package.json icon="file-json"
|
|
76
|
+
{
|
|
77
|
+
"name": "my-app",
|
|
78
|
+
"version": "1.0.0",
|
|
79
|
+
"trustedDependencies": ["my-trusted-package"] // [!code ++]
|
|
80
|
+
}
|
|
67
81
|
```
|
|
68
82
|
|
|
69
83
|
Then re-install the package. Bun will read this field and run lifecycle scripts for `my-trusted-package`.
|
|
70
84
|
|
|
71
85
|
Lifecycle scripts will run in parallel during installation. To adjust the maximum number of concurrent scripts, use the `--concurrent-scripts` flag. The default is two times the reported cpu count or GOMAXPROCS.
|
|
72
86
|
|
|
73
|
-
```bash
|
|
74
|
-
|
|
87
|
+
```bash terminal icon="terminal"
|
|
88
|
+
bun install --concurrent-scripts 5
|
|
75
89
|
```
|
|
76
90
|
|
|
91
|
+
---
|
|
92
|
+
|
|
77
93
|
## Workspaces
|
|
78
94
|
|
|
79
|
-
Bun supports `"workspaces"` in package.json. For complete documentation refer to [Package manager > Workspaces](
|
|
95
|
+
Bun supports `"workspaces"` in package.json. For complete documentation refer to [Package manager > Workspaces](/pm/workspaces).
|
|
80
96
|
|
|
81
|
-
```json
|
|
97
|
+
```json package.json icon="file-json"
|
|
82
98
|
{
|
|
83
99
|
"name": "my-app",
|
|
84
100
|
"version": "1.0.0",
|
|
85
|
-
"workspaces": ["packages/*"],
|
|
101
|
+
"workspaces": ["packages/*"], // [!code ++]
|
|
86
102
|
"dependencies": {
|
|
87
103
|
"preact": "^10.5.13"
|
|
88
104
|
}
|
|
89
105
|
}
|
|
90
106
|
```
|
|
91
107
|
|
|
108
|
+
---
|
|
109
|
+
|
|
92
110
|
## Installing dependencies for specific packages
|
|
93
111
|
|
|
94
112
|
In a monorepo, you can install the dependencies for a subset of packages using the `--filter` flag.
|
|
95
113
|
|
|
96
|
-
```bash
|
|
114
|
+
```bash terminal icon="terminal"
|
|
97
115
|
# Install dependencies for all workspaces except `pkg-c`
|
|
98
|
-
|
|
116
|
+
bun install --filter '!pkg-c'
|
|
99
117
|
|
|
100
118
|
# Install dependencies for only `pkg-a` in `./packages/pkg-a`
|
|
101
|
-
|
|
119
|
+
bun install --filter './packages/pkg-a'
|
|
102
120
|
```
|
|
103
121
|
|
|
104
|
-
For more information on filtering with `bun install`, refer to [Package Manager > Filtering](
|
|
122
|
+
For more information on filtering with `bun install`, refer to [Package Manager > Filtering](/pm/filter#bun-install-and-bun-outdated)
|
|
123
|
+
|
|
124
|
+
---
|
|
105
125
|
|
|
106
126
|
## Overrides and resolutions
|
|
107
127
|
|
|
108
|
-
Bun supports npm's `"overrides"` and Yarn's `"resolutions"` in `package.json`. These are mechanisms for specifying a version range for _metadependencies_—the dependencies of your dependencies. Refer to [Package manager > Overrides and resolutions](
|
|
128
|
+
Bun supports npm's `"overrides"` and Yarn's `"resolutions"` in `package.json`. These are mechanisms for specifying a version range for _metadependencies_—the dependencies of your dependencies. Refer to [Package manager > Overrides and resolutions](/pm/overrides) for complete documentation.
|
|
109
129
|
|
|
110
|
-
```json
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
}
|
|
130
|
+
```json package.json file="file-json"
|
|
131
|
+
{
|
|
132
|
+
"name": "my-app",
|
|
133
|
+
"dependencies": {
|
|
134
|
+
"foo": "^2.0.0"
|
|
135
|
+
},
|
|
136
|
+
"overrides": {
|
|
137
|
+
// [!code ++]
|
|
138
|
+
"bar": "~4.4.0" // [!code ++]
|
|
139
|
+
} // [!code ++]
|
|
140
|
+
}
|
|
120
141
|
```
|
|
121
142
|
|
|
143
|
+
---
|
|
144
|
+
|
|
122
145
|
## Global packages
|
|
123
146
|
|
|
124
147
|
To install a package globally, use the `-g`/`--global` flag. Typically this is used for installing command-line tools.
|
|
125
148
|
|
|
126
|
-
```bash
|
|
127
|
-
|
|
128
|
-
|
|
149
|
+
```bash terminal icon="terminal"
|
|
150
|
+
bun install --global cowsay # or `bun install -g cowsay`
|
|
151
|
+
cowsay "Bun!"
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
```txt
|
|
129
155
|
______
|
|
130
156
|
< Bun! >
|
|
131
157
|
------
|
|
@@ -136,49 +162,57 @@ $ cowsay "Bun!"
|
|
|
136
162
|
|| ||
|
|
137
163
|
```
|
|
138
164
|
|
|
165
|
+
---
|
|
166
|
+
|
|
139
167
|
## Production mode
|
|
140
168
|
|
|
141
169
|
To install in production mode (i.e. without `devDependencies` or `optionalDependencies`):
|
|
142
170
|
|
|
143
|
-
```bash
|
|
144
|
-
|
|
171
|
+
```bash terminal icon="terminal"
|
|
172
|
+
bun install --production
|
|
145
173
|
```
|
|
146
174
|
|
|
147
175
|
For reproducible installs, use `--frozen-lockfile`. This will install the exact versions of each package specified in the lockfile. If your `package.json` disagrees with `bun.lock`, Bun will exit with an error. The lockfile will not be updated.
|
|
148
176
|
|
|
149
|
-
```bash
|
|
150
|
-
|
|
177
|
+
```bash terminal icon="terminal"
|
|
178
|
+
bun install --frozen-lockfile
|
|
151
179
|
```
|
|
152
180
|
|
|
153
|
-
For more information on Bun's lockfile `bun.lock`, refer to [Package manager > Lockfile](
|
|
181
|
+
For more information on Bun's lockfile `bun.lock`, refer to [Package manager > Lockfile](/pm/lockfile).
|
|
182
|
+
|
|
183
|
+
---
|
|
154
184
|
|
|
155
185
|
## Omitting dependencies
|
|
156
186
|
|
|
157
187
|
To omit dev, peer, or optional dependencies use the `--omit` flag.
|
|
158
188
|
|
|
159
|
-
```bash
|
|
189
|
+
```bash terminal icon="terminal"
|
|
160
190
|
# Exclude "devDependencies" from the installation. This will apply to the
|
|
161
191
|
# root package and workspaces if they exist. Transitive dependencies will
|
|
162
192
|
# not have "devDependencies".
|
|
163
|
-
|
|
193
|
+
bun install --omit dev
|
|
164
194
|
|
|
165
195
|
# Install only dependencies from "dependencies"
|
|
166
|
-
|
|
196
|
+
bun install --omit=dev --omit=peer --omit=optional
|
|
167
197
|
```
|
|
168
198
|
|
|
199
|
+
---
|
|
200
|
+
|
|
169
201
|
## Dry run
|
|
170
202
|
|
|
171
203
|
To perform a dry run (i.e. don't actually install anything):
|
|
172
204
|
|
|
173
|
-
```bash
|
|
174
|
-
|
|
205
|
+
```bash terminal icon="terminal"
|
|
206
|
+
bun install --dry-run
|
|
175
207
|
```
|
|
176
208
|
|
|
209
|
+
---
|
|
210
|
+
|
|
177
211
|
## Non-npm dependencies
|
|
178
212
|
|
|
179
|
-
Bun supports installing dependencies from Git, GitHub, and local or remotely-hosted tarballs. For complete documentation refer to [Package manager > Git, GitHub, and tarball dependencies](
|
|
213
|
+
Bun supports installing dependencies from Git, GitHub, and local or remotely-hosted tarballs. For complete documentation refer to [Package manager > Git, GitHub, and tarball dependencies](/pm/cli/add).
|
|
180
214
|
|
|
181
|
-
```json
|
|
215
|
+
```json package.json icon="file-json"
|
|
182
216
|
{
|
|
183
217
|
"dependencies": {
|
|
184
218
|
"dayjs": "git+https://github.com/iamkun/dayjs.git",
|
|
@@ -191,6 +225,8 @@ Bun supports installing dependencies from Git, GitHub, and local or remotely-hos
|
|
|
191
225
|
}
|
|
192
226
|
```
|
|
193
227
|
|
|
228
|
+
---
|
|
229
|
+
|
|
194
230
|
## Installation strategies
|
|
195
231
|
|
|
196
232
|
Bun supports two package installation strategies that determine how dependencies are organized in `node_modules`:
|
|
@@ -199,40 +235,36 @@ Bun supports two package installation strategies that determine how dependencies
|
|
|
199
235
|
|
|
200
236
|
The traditional npm/Yarn approach that flattens dependencies into a shared `node_modules` directory:
|
|
201
237
|
|
|
202
|
-
```bash
|
|
203
|
-
|
|
238
|
+
```bash terminal icon="terminal"
|
|
239
|
+
bun install --linker hoisted
|
|
204
240
|
```
|
|
205
241
|
|
|
206
242
|
### Isolated installs
|
|
207
243
|
|
|
208
244
|
A pnpm-like approach that creates strict dependency isolation to prevent phantom dependencies:
|
|
209
245
|
|
|
210
|
-
```bash
|
|
211
|
-
|
|
246
|
+
```bash terminal icon="terminal"
|
|
247
|
+
bun install --linker isolated
|
|
212
248
|
```
|
|
213
249
|
|
|
214
250
|
Isolated installs create a central package store in `node_modules/.bun/` with symlinks in the top-level `node_modules`. This ensures packages can only access their declared dependencies.
|
|
215
251
|
|
|
216
|
-
For complete documentation on isolated installs, refer to [Package manager > Isolated installs](
|
|
217
|
-
|
|
218
|
-
## Disk efficiency
|
|
252
|
+
For complete documentation on isolated installs, refer to [Package manager > Isolated installs](/pm/isolated-installs).
|
|
219
253
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
For complete documentation refer to [Package manager > Global cache](https://bun.com/docs/install/cache).
|
|
254
|
+
---
|
|
223
255
|
|
|
224
256
|
## Minimum release age
|
|
225
257
|
|
|
226
258
|
To protect against supply chain attacks where malicious packages are quickly published, you can configure a minimum age requirement for npm packages. Package versions published more recently than the specified threshold (in seconds) will be filtered out during installation.
|
|
227
259
|
|
|
228
|
-
```bash
|
|
260
|
+
```bash terminal icon="terminal"
|
|
229
261
|
# Only install package versions published at least 3 days ago
|
|
230
|
-
|
|
262
|
+
bun add @types/bun --minimum-release-age 259200 # seconds
|
|
231
263
|
```
|
|
232
264
|
|
|
233
265
|
You can also configure this in `bunfig.toml`:
|
|
234
266
|
|
|
235
|
-
```toml
|
|
267
|
+
```toml bunfig.toml icon="settings"
|
|
236
268
|
[install]
|
|
237
269
|
# Only install package versions published at least 3 days ago
|
|
238
270
|
minimumReleaseAge = 259200 # seconds
|
|
@@ -251,13 +283,15 @@ When the minimum age filter is active:
|
|
|
251
283
|
- Exact version requests (like `package@1.1.1`) still respect the age gate but bypass the stability check
|
|
252
284
|
- Versions without a `time` field are treated as passing the age check (npm registry should always provide timestamps)
|
|
253
285
|
|
|
254
|
-
For more advanced security scanning, including integration with services & custom filtering, see [Package manager > Security Scanner API](
|
|
286
|
+
For more advanced security scanning, including integration with services & custom filtering, see [Package manager > Security Scanner API](/pm/security-scanner-api).
|
|
287
|
+
|
|
288
|
+
---
|
|
255
289
|
|
|
256
290
|
## Configuration
|
|
257
291
|
|
|
258
292
|
The default behavior of `bun install` can be configured in `bunfig.toml`. The default values are shown below.
|
|
259
293
|
|
|
260
|
-
```toml
|
|
294
|
+
```toml bunfig.toml icon="settings"
|
|
261
295
|
[install]
|
|
262
296
|
|
|
263
297
|
# whether to install optionalDependencies
|
|
@@ -285,19 +319,23 @@ dryRun = false
|
|
|
285
319
|
concurrentScripts = 16 # (cpu count or GOMAXPROCS) x2
|
|
286
320
|
|
|
287
321
|
# installation strategy: "hoisted" or "isolated"
|
|
288
|
-
# default: "hoisted"
|
|
322
|
+
# default: "hoisted" (for single-project projects)
|
|
323
|
+
# default: "isolated" (for monorepo projects)
|
|
289
324
|
linker = "hoisted"
|
|
290
325
|
|
|
326
|
+
|
|
291
327
|
# minimum age config
|
|
292
328
|
minimumReleaseAge = 259200 # seconds
|
|
293
329
|
minimumReleaseAgeExcludes = ["@types/node", "typescript"]
|
|
294
330
|
```
|
|
295
331
|
|
|
332
|
+
---
|
|
333
|
+
|
|
296
334
|
## CI/CD
|
|
297
335
|
|
|
298
336
|
Use the official [`oven-sh/setup-bun`](https://github.com/oven-sh/setup-bun) action to install `bun` in a GitHub Actions pipeline:
|
|
299
337
|
|
|
300
|
-
```yaml
|
|
338
|
+
```yaml .github/workflows/release.yml icon="file-code"
|
|
301
339
|
name: bun-types
|
|
302
340
|
jobs:
|
|
303
341
|
build:
|
|
@@ -316,15 +354,15 @@ jobs:
|
|
|
316
354
|
|
|
317
355
|
For CI/CD environments that want to enforce reproducible builds, use `bun ci` to fail the build if the package.json is out of sync with the lockfile:
|
|
318
356
|
|
|
319
|
-
```bash
|
|
320
|
-
|
|
357
|
+
```bash terminal icon="terminal"
|
|
358
|
+
bun ci
|
|
321
359
|
```
|
|
322
360
|
|
|
323
361
|
This is equivalent to `bun install --frozen-lockfile`. It installs exact versions from `bun.lock` and fails if `package.json` doesn't match the lockfile. To use `bun ci` or `bun install --frozen-lockfile`, you must commit `bun.lock` to version control.
|
|
324
362
|
|
|
325
363
|
And instead of running `bun install`, run `bun ci`.
|
|
326
364
|
|
|
327
|
-
```yaml
|
|
365
|
+
```yaml .github/workflows/release.yml icon="file-code"
|
|
328
366
|
name: bun-types
|
|
329
367
|
jobs:
|
|
330
368
|
build:
|
|
@@ -341,4 +379,93 @@ jobs:
|
|
|
341
379
|
run: bun run build
|
|
342
380
|
```
|
|
343
381
|
|
|
344
|
-
|
|
382
|
+
## pnpm migration
|
|
383
|
+
|
|
384
|
+
Bun automatically migrates projects from pnpm to bun. When a `pnpm-lock.yaml` file is detected and no `bun.lock` file exists, Bun will automatically migrate the lockfile to `bun.lock` during installation. The original `pnpm-lock.yaml` file remains unmodified.
|
|
385
|
+
|
|
386
|
+
```bash terminal icon="terminal"
|
|
387
|
+
bun install
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
**Note**: Migration only runs when `bun.lock` is absent. There is currently no opt-out flag for pnpm migration.
|
|
391
|
+
|
|
392
|
+
The migration process handles:
|
|
393
|
+
|
|
394
|
+
### Lockfile Migration
|
|
395
|
+
|
|
396
|
+
- Converts `pnpm-lock.yaml` to `bun.lock` format
|
|
397
|
+
- Preserves package versions and resolution information
|
|
398
|
+
- Maintains dependency relationships and peer dependencies
|
|
399
|
+
- Handles patched dependencies with integrity hashes
|
|
400
|
+
|
|
401
|
+
### Workspace Configuration
|
|
402
|
+
|
|
403
|
+
When a `pnpm-workspace.yaml` file exists, Bun migrates workspace settings to your root `package.json`:
|
|
404
|
+
|
|
405
|
+
```yaml pnpm-workspace.yaml icon="file-code"
|
|
406
|
+
packages:
|
|
407
|
+
- "apps/*"
|
|
408
|
+
- "packages/*"
|
|
409
|
+
|
|
410
|
+
catalog:
|
|
411
|
+
react: ^18.0.0
|
|
412
|
+
typescript: ^5.0.0
|
|
413
|
+
|
|
414
|
+
catalogs:
|
|
415
|
+
build:
|
|
416
|
+
webpack: ^5.0.0
|
|
417
|
+
babel: ^7.0.0
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
The workspace packages list and catalogs are moved to the `workspaces` field in `package.json`:
|
|
421
|
+
|
|
422
|
+
```json package.json icon="file-json"
|
|
423
|
+
{
|
|
424
|
+
"workspaces": {
|
|
425
|
+
"packages": ["apps/*", "packages/*"],
|
|
426
|
+
"catalog": {
|
|
427
|
+
"react": "^18.0.0",
|
|
428
|
+
"typescript": "^5.0.0"
|
|
429
|
+
},
|
|
430
|
+
"catalogs": {
|
|
431
|
+
"build": {
|
|
432
|
+
"webpack": "^5.0.0",
|
|
433
|
+
"babel": "^7.0.0"
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
### Catalog Dependencies
|
|
441
|
+
|
|
442
|
+
Dependencies using pnpm's `catalog:` protocol are preserved:
|
|
443
|
+
|
|
444
|
+
```json package.json icon="file-json"
|
|
445
|
+
{
|
|
446
|
+
"dependencies": {
|
|
447
|
+
"react": "catalog:",
|
|
448
|
+
"webpack": "catalog:build"
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
### Configuration Migration
|
|
454
|
+
|
|
455
|
+
The following pnpm configuration is migrated from both `pnpm-lock.yaml` and `pnpm-workspace.yaml`:
|
|
456
|
+
|
|
457
|
+
- **Overrides**: Moved from `pnpm.overrides` to root-level `overrides` in `package.json`
|
|
458
|
+
- **Patched Dependencies**: Moved from `pnpm.patchedDependencies` to root-level `patchedDependencies` in `package.json`
|
|
459
|
+
- **Workspace Overrides**: Applied from `pnpm-workspace.yaml` to root `package.json`
|
|
460
|
+
|
|
461
|
+
### Requirements
|
|
462
|
+
|
|
463
|
+
- Requires pnpm lockfile version 7 or higher
|
|
464
|
+
- Workspace packages must have a `name` field in their `package.json`
|
|
465
|
+
- All catalog entries referenced by dependencies must exist in the catalogs definition
|
|
466
|
+
|
|
467
|
+
After migration, you can safely remove `pnpm-lock.yaml` and `pnpm-workspace.yaml` files.
|
|
468
|
+
|
|
469
|
+
---
|
|
470
|
+
|
|
471
|
+
<Install />
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "bun link"
|
|
3
|
+
description: "Link local packages for development"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import Link from "/snippets/cli/link.mdx";
|
|
7
|
+
|
|
1
8
|
Use `bun link` in a local directory to register the current package as a "linkable" package.
|
|
2
9
|
|
|
3
|
-
```bash
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
$ bun link
|
|
10
|
+
```bash terminal icon="terminal"
|
|
11
|
+
cd /path/to/cool-pkg
|
|
12
|
+
cat package.json
|
|
13
|
+
bun link
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
```txt
|
|
11
17
|
bun link v1.x (7416672e)
|
|
12
18
|
Success! Registered "cool-pkg"
|
|
13
19
|
|
|
@@ -20,21 +26,23 @@ Or add it in dependencies in your package.json file:
|
|
|
20
26
|
|
|
21
27
|
This package can now be "linked" into other projects using `bun link cool-pkg`. This will create a symlink in the `node_modules` directory of the target project, pointing to the local directory.
|
|
22
28
|
|
|
23
|
-
```bash
|
|
24
|
-
|
|
25
|
-
|
|
29
|
+
```bash terminal icon="terminal"
|
|
30
|
+
cd /path/to/my-app
|
|
31
|
+
bun link cool-pkg
|
|
26
32
|
```
|
|
27
33
|
|
|
28
34
|
In addition, the `--save` flag can be used to add `cool-pkg` to the `dependencies` field of your app's package.json with a special version specifier that tells Bun to load from the registered local directory instead of installing from `npm`:
|
|
29
35
|
|
|
30
|
-
```json-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
36
|
+
```json package.json icon="file-json"
|
|
37
|
+
{
|
|
38
|
+
"name": "my-app",
|
|
39
|
+
"version": "1.0.0",
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"cool-pkg": "link:cool-pkg" // [!code ++]
|
|
37
42
|
}
|
|
43
|
+
}
|
|
38
44
|
```
|
|
39
45
|
|
|
40
|
-
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
<Link />
|