> ## Documentation Index
> Fetch the complete documentation index at: https://bun.zhcndoc.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 锁文件

> Bun 的锁文件格式和配置

运行 `bun install` 将创建一个名为 `bun.lock` 的锁文件。

#### 应该提交到 git 吗？

是的

#### 是否可以生成锁文件但不安装？

要生成锁文件而不安装到 `node_modules`，可以使用 `--lockfile-only` 标志。锁文件始终会保存到磁盘，即使它与项目的 `package.json` 文件已经是最新的。

```bash terminal icon="terminal" theme={"theme":{"light":"github-light","dark":"dracula"}}
bun install --lockfile-only
```

<Note>
  使用 `--lockfile-only` 仍然会将注册表元数据以及 git/tarball 依赖项填充到全局安装缓存中。
</Note>

#### 可以选择不生成锁文件吗？

要安装依赖但不创建锁文件：

```bash terminal icon="terminal" theme={"theme":{"light":"github-light","dark":"dracula"}}
bun install --no-save
```

安装 Yarn 锁文件，*同时* 创建 `bun.lock`。

<CodeGroup>
  ```bash terminal icon="terminal" theme={"theme":{"light":"github-light","dark":"dracula"}}
  bun install --yarn
  ```

  ```toml bunfig.toml icon="settings" theme={"theme":{"light":"github-light","dark":"dracula"}}
  [install.lockfile]
  # 是否在 bun.lock 旁保存非 Bun 的锁文件
  # 目前仅支持 "yarn"
  print = "yarn"
  ```
</CodeGroup>

#### 基于文本的锁文件

Bun v1.2 将默认锁文件格式更改为基于文本的 `bun.lock`。现有的二进制格式 `bun.lockb` 可以通过运行命令 `bun install --save-text-lockfile --frozen-lockfile --lockfile-only` 并删除 `bun.lockb` 来迁移到新格式。

关于新锁文件格式的更多信息，请参阅我们的 [博客文章](https://bun.com/blog/bun-lock-text-lockfile)。

#### 自动锁文件迁移

在没有 `bun.lock` 的项目中运行 `bun install` 时，Bun 会自动迁移现有的锁文件：

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

原始锁文件会被保留，验证无误后可以手动删除。
