Files
bun.sh/docs/install/lockfile.md
robobun 933c6fd260 docs: add missing v1.2.20 features documentation (#23086)
## Summary
- Document automatic yarn.lock migration in lockfile docs
- Add --recursive flag documentation for bun outdated/update commands  
- Document Windows long path support in installation docs

## Test plan
Documentation only - no code changes to test.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2025-09-29 23:34:09 -07:00

1.6 KiB

Running bun install will create a lockfile called bun.lock.

Should it be committed to git?

Yes

Generate a lockfile without installing?

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.

$ bun install --lockfile-only

{% callout %} Note - using --lockfile-only will still populate the global install cache with registry metadata and git/tarball dependencies. {% /callout %}

Can I opt out?

To install without creating a lockfile:

$ bun install --no-save

To install a Yarn lockfile in addition to bun.lock.

{% codetabs %}

$ bun install --yarn
[install.lockfile]
# whether to save a non-Bun lockfile alongside bun.lock
# only "yarn" is supported
print = "yarn"

{% /codetabs %}

Text-based lockfile

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.

More information about the new lockfile format can be found on our blogpost.

Automatic lockfile migration

When running bun install in a project without a bun.lock, Bun automatically migrates existing lockfiles:

  • yarn.lock (v1)
  • package-lock.json (npm)
  • pnpm-lock.yaml (pnpm)

The original lockfile is preserved and can be removed manually after verification.