# @codemirror/lsp-client 中文文档

规范地址：https://npmcn.com/package/%40codemirror/lsp-client/

版本：6\.3\.0
npm 元数据更新时间：2026-09-17T09:14:50.068Z
中文译文更新时间：2026-11-10T07:15:31.157Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40codemirror/lsp-client
原文对照：https://npmcn.com/package/%40codemirror/lsp-client/?lang=original

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

- 包体积（解压后）：292 kB，26 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：8 个
- 首次发布：2025-07-02T07:54:05.643Z
- 最新版本发布：2026-09-17T09:14:49.917Z
- 近 30 天下载量：132360（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：12（近 12 个月 6 个）

## 中文简介

CodeMirror 语言服务器协议客户端

## 安装

```sh
npm install @codemirror/lsp-client
```

也可以使用：`pnpm add @codemirror/lsp-client`、`yarn add @codemirror/lsp-client`、`bun add @codemirror/lsp-client`

## README

# @ codemirror/ lsp- 客户端 [![NPM version](https://img.shields.io/npm/v/@codemirror/lsp-client.svg)](https://www.npmjs.org/package/@codemirror/lsp-client)

\[ [**西非**](https://codemirror.net/) | [**医生**](https://codemirror.net/docs/ref/#lsp-client) | [**问 题**](https://code.haverbeke.berlin/codemirror/dev/issues) | [**论坛**](https://discuss.codemirror.net/c/v6/) | [**变化**](https://code.haverbeke.berlin/codemirror/lsp-client/src/branch/main/CHANGELOG.md) \[ . \]

此软件包执行语言服务器协议( LSP) 客户端 页:1 [代码](https://codemirror.net/) 代码编辑器.

这个 [项目页面](https://codemirror.net/) 拥有更多信息,a 数目 [实例](https://codemirror.net/examples/) 编辑 [文档](https://codemirror.net/docs/ref/#lsp-client)。 。 。 .

此代码以 [麻省理工学院许可证](https://code.haverbeke.berlin/codemirror/lsp-client/tree/main/LICENSE)。 。 。 .

我们的目标是成为一个包容、欢迎的社区。 为了表明这一点, 我们有一个 [代码 行为](http://contributor-covenant.org/version/1/1/0/) 适用 联系项目.

## 使用量

运行语言服务器并将其连接到 网页。 您可以在服务器上运行,并通过网络代理 套接字,或者,如果它是用 JavaScript 写的或者可以编译到 WASM, 在客户端直接运行。 @ codemirror/ lsp- 客户端软件包 通过 a([`Transport`](https://npmcn.com/package/%40codemirror/lsp-client/#readme-lsp-client.Transport)(中文(简体) ) 对象,它显示一个发送和接收 JSON 的小型界面 留言.

如何实际与服务器交谈、如何连接的责任 并处理断开,则留给执行 运输.

这个例子使用一种完全不处理出错的粗糙运输.

```javascript
import {Transport, LSPClient, languageServerExtensions} from "@codemirror/lsp-client"
import {basicSetup, EditorView} from "codemirror"
import {typescriptLanguage} from "@codemirror/lang-javascript"

function simpleWebSocketTransport(uri: string): Promise<Transport> {
  let handlers: ((value: string) => void)[] = []
  let sock = new WebSocket(uri)
  sock.onmessage = e => { for (let h of handlers) h(e.data.toString()) }
  return new Promise(resolve => {
    sock.onopen = () => resolve({
      send(message: string) { sock.send(message) },
      subscribe(handler: (value: string) => void) { handlers.push(handler) },
      unsubscribe(handler: (value: string) => void) { handlers = handlers.filter(h => h != handler) }
    })
  })
}

let transport = await simpleWebSocketTransport("ws://host:port")
let client = new LSPClient({extensions: languageServerExtensions()}).connect(transport)

new EditorView({
  extensions: [
    basicSetup,
    typescriptLanguage,
    client.plugin("file:///some/file.ts"),
  ],
  parent: document.body
})
```

## 常见问题

### @codemirror/lsp-client 是什么？

CodeMirror 语言服务器协议客户端

### 如何安装 @codemirror/lsp-client？

在项目目录运行 npm install @codemirror/lsp-client，或使用 pnpm add / yarn add / bun add。

### @codemirror/lsp-client 支持 TypeScript 吗？

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

### @codemirror/lsp-client 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @codemirror/lsp-client 可以商用吗？

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

### @codemirror/lsp-client 的下载量有多少？

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

### @codemirror/lsp-client 还在维护吗？

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

