# @automerge/automerge 中文文档

规范地址：https://npmcn.com/package/%40automerge/automerge/

版本：3\.5\.0
npm 元数据更新时间：2026-09-16T15:07:20.839Z
中文译文更新时间：2026-11-07T06:56:39.250Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40automerge/automerge
原文对照：https://npmcn.com/package/%40automerge/automerge/?lang=original
项目主页：https://github.com/automerge/automerge/tree/main/javascript
源码仓库：https://github.com/automerge/automerge

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：47.5 MB，58 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2022-10-04T20:58:13.236Z
- 最新版本发布：2026-09-16T15:07:20.646Z
- 近 30 天下载量：340045（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：138（近 12 个月 19 个）

## 中文简介

Javascript 自动合并的执行, 由 @ automerce/ automerce- wasm 支持

## 安装

```sh
npm install @automerge/automerge
```

也可以使用：`pnpm add @automerge/automerge`、`yarn add @automerge/automerge`、`bun add @automerge/automerge`

## README

## 自动合并

Autommerge 是用于构建协作的数据结构库 应用程序,此软件包是 javascript 执行 .

详细文件见 [自动合并.org](http://automerge.org/) 但请看下面的简短的开始guid.

## 快速启动

首先,安装库.

```
npm install @automerge/automerge
```

如果你正在写一个 `node` 应用程序,您可以直接跳转到 [来点吧 数据](https://npmcn.com/package/%40automerge/automerge/#readme-make-some-data)。如果你在浏览器中,你需要一个捆绑器

### Bundler 设置

`@automerge/automerge` 是一个围绕一个核心库的包装器,它被写入 生锈后编译为WebAssembly,并作为单独的套件分发,称为 `@automerge/automerge-wasm`。浏览器目前不支持 WebAssembly 模块参与无害环境管理模块的导入,所以您必须使用捆绑器来导入 `@automerge/automerge` 在浏览器中。 外面有很多混混,我们 在 `examples` 文件夹。 这是短篇 使用 Webpack 5 的示例.

假设新网络包项目的标准设置,则需要启用 `asyncWebAssembly` 实验 在典型的网络包装项目中 像这样的东西 `webpack.config.js`

```javascript
module.exports = {
  ...
  experiments: { asyncWebAssembly: true },
  performance: {       // we dont want the wasm blob to generate warnings
     hints: false,
     maxEntrypointSize: 512000,
     maxAssetSize: 512000
  }
};
```

### 制作一些数据

自动合并允许将执行的线程分开来修改一些数据 并永远能够 合并他们的改变后.

```javascript
import * as automerge from "@automerge/automerge"
import * as assert from "assert"

let doc1 = automerge.from({
  tasks: [
    { description: "feed fish", done: false },
    { description: "water plants", done: false },
  ],
})

// Create a new thread of execution
let doc2 = automerge.clone(doc1)

// Now we concurrently make changes to doc1 and doc2

// Complete a task in doc2
doc2 = automerge.change(doc2, d => {
  d.tasks[0].done = true
})

// Add a task in doc1
doc1 = automerge.change(doc1, d => {
  d.tasks.push({
    description: "water fish",
    done: false,
  })
})

// Merge changes from both docs
doc1 = automerge.merge(doc1, doc2)
doc2 = automerge.merge(doc2, doc1)

// Both docs are merged and identical
assert.deepEqual(doc1, {
  tasks: [
    { description: "feed fish", done: true },
    { description: "water plants", done: false },
    { description: "water fish", done: false },
  ],
})

assert.deepEqual(doc2, {
  tasks: [
    { description: "feed fish", done: true },
    { description: "water plants", done: false },
    { description: "water fish", done: false },
  ],
})
```

## 发展

见 [开机了](https://npmcn.com/package/%40automerge/javascript/HACKING.md)

## 元数据

版权2017–现在,自发贡献. 根据《任择议定书》的规定释放 麻省理工学院许可证(见 `LICENSE`) (中文(简体) ).

## 常见问题

### @automerge/automerge 是什么？

Javascript 自动合并的执行, 由 @ automerce/ automerce- wasm 支持

### 如何安装 @automerge/automerge？

在项目目录运行 npm install @automerge/automerge，或使用 pnpm add / yarn add / bun add。

### @automerge/automerge 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @automerge/automerge 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @automerge/automerge 可以商用吗？

@automerge/automerge 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @automerge/automerge 的下载量有多少？

根据 npm 官方下载统计，@automerge/automerge 在 2026/10/07 – 2026/11/05 这 30 天内被下载 340,045 次，日均约 11,335 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @automerge/automerge 还在维护吗？

最新版本 3\.5\.0 发布于 2026/09/16（1 个月前）；至今共发布 138 个版本，其中过去 12 个月发布了 19 个；首次发布于 2022/10/05。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

