# @astrojs/webapi 中文文档

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

版本：3\.0\.0
npm 元数据更新时间：2025-09-18T17:34:46.473Z
中文译文更新时间：2026-11-07T01:10:33.823Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40astrojs/webapi
原文对照：https://npmcn.com/package/%40astrojs/webapi/?lang=original
项目主页：https://github.com/withastro/astro/tree/main/packages/webapi#readme
源码仓库：https://github.com/withastro/astro

弃用说明：This package is not used by Astro any more and is no longer maintained\. In Astro 3\.0 polyfills are part of a core module\.

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

- 包体积（解压后）：335 kB，7 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2022-03-07T21:39:25.513Z
- 最新版本发布：2023-07-27T16:18:46.321Z
- 近 30 天下载量：97358（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：23（近 12 个月 0 个）

## 中文简介

在节点使用 Web API

## 安装

```sh
npm install @astrojs/webapi
```

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

## README

# 网络API

**网络API** 让您使用节点 v16 中未存在的 Web API .

```sh
npm install @astrojs/webapi
```

```js
import { polyfill } from '@astrojs/webapi'

polyfill(globalThis)

const t = new EventTarget()
const e = new CustomEvent('hello')

t.addEventListener('hello', console.log)

t.dispatchEvent(e) // logs `e` event from `t`
```

这些API由受欢迎的开源项目组合而成,并配置以共享执行细节. 这使得他们的行为能够与浏览器的期望相匹配并减少他们合并的内存足迹.

## 特征

-   [字节Length Queing 战略](https://developer.mozilla.org/en-US/docs/Web/API/ByteLengthQueuingStrategy)
-   [Canvas 渲染文本2D](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D)
-   [CSS斯图尔谢特](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet)
-   [队列战略](https://developer.mozilla.org/en-US/docs/Web/API/CountQueuingStrategy)
-   [自定义元素注册](https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry)
-   [自定义事件](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent)
-   [DOM 豁免](https://developer.mozilla.org/en-US/docs/Web/API/DOMException)
-   [文档](https://developer.mozilla.org/en-US/docs/Web/API/Document)
-   [文档碎片](https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment)
-   [元素](https://developer.mozilla.org/en-US/docs/Web/API/Element)
-   [活动](https://developer.mozilla.org/en-US/docs/Web/API/Event)
-   [事件目标](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget)
-   [文件](https://developer.mozilla.org/en-US/docs/Web/API/File)
-   [格式数据](https://developer.mozilla.org/en-US/docs/Web/API/FormData)
-   [HTML 文档](https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument)
-   [HTML 元素](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement)
-   [HTML Body 元素](https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement)
-   [HTML 坎瓦斯元素](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement)
-   [HTML 演示文稿](https://developer.mozilla.org/en-US/docs/Web/API/HTMLDivElement)
-   [HTML 标题](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadElement)
-   [HTML 组件](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHtmlElement)
-   [HTML 图像元素](https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement)
-   [HTML 扩展](https://developer.mozilla.org/en-US/docs/Web/API/HTMLSpanElement)
-   [HTML 样式](https://developer.mozilla.org/en-US/docs/Web/API/HTMLStyleElement)
-   [HTML 模板](https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement)
-   [HTML 未知元素](https://developer.mozilla.org/en-US/docs/Web/API/HTMLUnknownElement)
-   [页眉](https://developer.mozilla.org/en-US/docs/Web/API/Headers)
-   [交叉观察员](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver)
-   [图像](https://developer.mozilla.org/en-US/docs/Web/API/Image)
-   [图像数据](https://developer.mozilla.org/en-US/docs/Web/API/ImageData)
-   [媒体查询列表](https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList)
-   [变异观察员](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver)
-   [节点](https://developer.mozilla.org/en-US/docs/Web/API/Node)
-   [节点](https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator)
-   [屏幕外凸起](https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas)
-   [可读ByteStream 控制器](https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController)
-   [可读结构](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream)
-   [可读 StreamBYOBReader 读取器](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamBYOBReader)
-   [可读 StreamBYOB 请求](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamBYOBRequest)
-   [可读结构](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultController)
-   [可读结构](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader)
-   [请求](https://developer.mozilla.org/en-US/docs/Web/API/Request)
-   [回应](https://developer.mozilla.org/en-US/docs/Web/API/Response)
-   [阴影旋转](https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot)
-   [存储](https://developer.mozilla.org/en-US/docs/Web/API/Storage)
-   [样式表](https://developer.mozilla.org/en-US/docs/Web/API/StyleSheet)
-   [变形图](https://developer.mozilla.org/en-US/docs/Web/API/TransformStream)
-   [树华克](https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker)
-   [可写入结构](https://developer.mozilla.org/en-US/docs/Web/API/WritableStream)
-   [可写 Stream 默认控制器](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultController)
-   [可书写自定义](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultWriter)
-   [窗口](https://developer.mozilla.org/en-US/docs/Web/API/Window)
-   [取消动画Frame](https://developer.mozilla.org/en-US/docs/Web/API/Window/cancelAnimationFrame)
-   [取消回话](https://developer.mozilla.org/en-US/docs/Web/API/cancelIdleCallback)
-   [清除超时](https://developer.mozilla.org/en-US/docs/Web/API/clearTimeout)
-   [获取](https://developer.mozilla.org/en-US/docs/Web/API/fetch)
-   [本地图集](https://developer.mozilla.org/en-US/docs/Web/API/localStorage)
-   [请求动画Frame](https://developer.mozilla.org/en-US/docs/Web/API/requestAnimationFrame)
-   [请回话](https://developer.mozilla.org/en-US/docs/Web/API/requestIdleCallback)
-   [设置时间](https://developer.mozilla.org/en-US/docs/Web/API/setTimeout)
-   [结构化](https://developer.mozilla.org/en-US/docs/Web/API/structuredClone)
-   [URL 软件](https://developer.mozilla.org/en-US/docs/Web/API/URLPattern)

## 使用量

您可以使用 WebAPI 作为单项导出 .

```js
import { Event, EventTarget, File, fetch, Response } from '@astrojs/webapi'
```

您可以将 WebAPI 应用到对象上, 如 `globalThis`。 。 。 .

```js
import { polyfill } from '@astrojs/webapi'

polyfill(globalThis)
```

## 多填充选项

这个 `exclude` 选项获得一份WebAPI列表,以排除多填充.

```js
polyfill(globalThis, {
    // disables polyfills for setTimeout clearTimeout
    exclude: 'setTimeout clearTimeout',
})
```

这个 `exclude` 选项可接受简写来排除多个多填充。 这些快手以加号结束(`+`) (中文(简体) ).

```js
polyfill(globalThis, {
    // disables polyfills for setTimeout clearTimeout
    exclude: 'Timeout+',
})
```

```js
polyfill(globalThis, {
    // disables polyfills for Node, Window, Document, HTMLElement, etc.
    exclude: 'Node+',
})
```

```js
polyfill(globalThis, {
    // disables polyfills for Event, EventTarget, Node, Window, Document, HTMLElement, etc.
    exclude: 'Event+',
})
```

| 简写 | 不包括 |
| :-- | :-- |
| `Document+` | `Document`, (中文(简体) ), `HTMLDocument` |
| `Element+` | `Element`,和排除 `HTMLElement+` |
| `Event+` | `Event`, (中文(简体) ), `CustomEvent`, (中文(简体) ), `EventTarget`, (中文(简体) ), `MediaQueryList`, (中文(简体) ), `Window`,和排除 `Node+` |
| `EventTarget+` | `Event`, (中文(简体) ), `CustomEvent`, (中文(简体) ), `EventTarget`, (中文(简体) ), `MediaQueryList`, (中文(简体) ), `Window`,和排除 `Node+` |
| `HTMLElement+` | `CustomElementsRegistry`, (中文(简体) ), `HTMLElement`, (中文(简体) ), `HTMLBodyElement`, (中文(简体) ), `HTMLCanvasElement`, (中文(简体) ), `HTMLDivElement`, (中文(简体) ), `HTMLHeadElement`, (中文(简体) ), `HTMLHtmlElement`, (中文(简体) ), `HTMLImageElement`, (中文(简体) ), `HTMLStyleElement`, (中文(简体) ), `HTMLTemplateElement`, (中文(简体) ), `HTMLUnknownElement`, (中文(简体) ), `Image` |
| `Node+` | `Node`, (中文(简体) ), `DocumentFragment`, (中文(简体) ), `ShadowRoot`, (中文(简体) ), `Document`, (中文(简体) ), `HTMLDocument`,和排除 `Element+` |
| `StyleSheet+` | `StyleSheet`, (中文(简体) ), `CSSStyleSheet` |

* * *

## 许可证归属( A)

谢谢你为Jon Neal写了原作 [网络api](https://github.com/astro-community/webapi) 工程,此软件包来自该软件包。 根据CC0-1.0许可证颁发.

代码从 [事件目标](https://www.npmjs.com/package/event-target-shim) 根据麻省理工学院的许可, 长岛同仁版权.

## 常见问题

### @astrojs/webapi 是什么？

在节点使用 Web API注意：该包已被作者标记为弃用——This package is not used by Astro any more and is no longer maintained\. In Astro 3\.0 polyfills are part of a core module\.

### 如何安装 @astrojs/webapi？

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

### @astrojs/webapi 支持 TypeScript 吗？

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

### @astrojs/webapi 支持 ESM 还是 CommonJS？

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

### @astrojs/webapi 可以商用吗？

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

### @astrojs/webapi 的下载量有多少？

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

### @astrojs/webapi 还在维护吗？

最新版本 3\.0\.0 发布于 2023/07/28（3 年前）；至今共发布 23 个版本，其中过去 12 个月发布了 0 个；首次发布于 2022/03/08。作者已将其标记为弃用，新项目建议寻找替代方案。

