# @apollo/graphql 中文文档

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

版本：14\.5\.0
npm 元数据更新时间：2026-04-07T17:21:07.346Z
中文译文更新时间：2026-11-07T03:41:02.065Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40apollo/graphql
原文对照：https://npmcn.com/package/%40apollo/graphql/?lang=original
项目主页：https://github.com/apollographql/graphql-js
源码仓库：https://github.com/apollographql/graphql-js

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

- 包体积（解压后）：1.9 MB，483 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>= 6\.x
- 运行依赖：1 个
- 首次发布：2019-08-15T23:28:00.580Z
- 最新版本发布：2019-08-20T23:30:18.746Z
- 近 30 天下载量：2065（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：5（近 12 个月 0 个）

## 中文简介

一个可针对任何服务的查询语言和运行时间 .

## 安装

```sh
npm install @apollo/graphql
```

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

## README

# 图QL.js

GraphQL的JavaScript执行,由Facebook创建的API的查询语言.

[![Build Status](https://dev.azure.com/apollographql/graphql-js/_apis/build/status/apollographql.graphql-js?branchName=master)](https://dev.azure.com/apollographql/graphql-js/_build/latest?definitionId=2&branchName=master) [![npm version](https://badge.fury.io/js/%40apollo%2Fgraphql.svg)](https://badge.fury.io/js/%40apollo%2Fgraphql)

这个叉子的目的是增加我们阿波罗能够改进的速度 `graphql` 执行,同时也逐渐将其从Flow转换为TypeScript.

见下列更完整的文档: [https://graphql.org/ (中文(简体) )](https://graphql.org/) 财务报告和审定财务报表 [https://graphql.org/graphql-js/ (中文(简体) )](https://graphql.org/graphql-js/)。 。 。 .

寻求帮助? 查找资源 [从社区](https://graphql.org/community/)。 。 。 .

## 开始

图QL概况见 [读取](https://github.com/graphql/graphql-spec/blob/master/README.md) 联 合 国 [图QL 规格](https://github.com/graphql/graphql-spec)。概览 描述一组简单的 GraphQL 实例,这些实例作为 [测试](https://npmcn.com/package/%40apollo/graphql/src/__tests__) 在此仓库中。 从这个寄存器开始的好方法就是走 通过README和相应的平行测试.

### 使用图QL.js

从 npm 安装 GraphQL.js

```sh
npm install --save @apollo/graphql
```

GraphQL.js 提供了两种重要能力:建立类型计划 正在提供针对该类计划的查询.

首先, 构建一个 GraphQL 类型计划, 将地图映射到您的代码基础 .

```js
import {
  graphql,
  GraphQLSchema,
  GraphQLObjectType,
  GraphQLString,
} from '@apollo/graphql';

var schema = new GraphQLSchema({
  query: new GraphQLObjectType({
    name: 'RootQueryType',
    fields: {
      hello: {
        type: GraphQLString,
        resolve() {
          return 'world';
        },
      },
    },
  }),
});
```

这定义了一个简单的方案,其中包含一个类型和一个字段,可以解决 到固定值。 这个 `resolve` 函数可以返回一个值,一个承诺, 或一系列的承诺。 顶部包含一个更复杂的示例 职等 [测试](https://npmcn.com/package/%40apollo/graphql/src/__tests__) 目录.

然后,服务的结果 一个查询 该类型计划.

```js
var query = '{ hello }';

graphql(schema, query).then(result => {
  // Prints
  // {
  //   data: { hello: "world" }
  // }
  console.log(result);
});
```

这将运行一个查询来获取定义的字段 。 这个 `graphql` 函数将 首先确保查询在执行前在策略上和模拟上都有效 否则,报告错误.

```js
var query = '{ boyhowdy }';

graphql(schema, query).then(result => {
  // Prints
  // {
  //   errors: [
  //     { message: 'Cannot query field boyhowdy on RootQueryType',
  //       locations: [ { line: 1, column: 3 } ] }
  //   ]
  // }
  console.log(result);
});
```

### 在浏览器中使用

GraphQL.js 是一个通用库,既可在节点服务器中使用 和浏览器。 例如 [图表QL](https://github.com/graphql/graphiql/) 工具用 GraphQL.js 构建 !

使用 GraphQL.js 构建项目 [网络软件包](https://webpack.js.org/) 或者说 [滚动](https://github.com/rollup/rollup) 应该只是工作,并且只包括 您使用的图书馆部分 。 这样做是因为GraphQL.js 被分发 与两个共同JS(`require()`)和无害环境管理(`import`)档案. 确保任何 查找自定义构建配置 `.mjs` 档案!

### 捐款

[读取"阿波罗贡献者准则".](https://github.com/apollographql/graphql-js/blob/master/.github/CONTRIBUTING.md)

#### 类型脚本

这个叉子的一部分目的就是开始逐渐迁移 `graphql-js` 从"流"到"类型脚本". 一些部件已经改装,有些尚待改装。 从 Flow 转换文件到 TypeScript 的步骤如下:

1.  重命名文件,并将语法转换为 TypeScript : `Foo.js` 变成 `Foo.ts`,任何流程特定语法都应被转换.
2.  创建一个 `Foo.js.flow` 文件导出类型声明文件( e)`Foo.d.ts`如果在场,可有助于指导这一进程。 确定文件的前缀 `// @flow`否则会出事的!
3.  删除 `Foo.d.ts` 文件,如果它存在的话.
4.  运行 `npm run check`,并确保两者 `flow` 财务报告和审定财务报表 `tsc` 类型检查工程无问题.

检查出来 [45da517 (英语)](https://github.com/apollographql/graphql-js/commit/45da517f32e15c0b8c0356fb4c4d95e959e3df91) 作为这一进程的一个例子.

### 更改日志

变化以 [GitHub 发布](https://github.com/graphql/graphql-js/releases)。 。 。 .

### 许可证

图QL.js是 [麻省理工学院执照](https://github.com/graphql/graphql-js/blob/master/LICENSE)。 。 。 .

### 贷项

这个 `.d.ts` 此工程中的文件部分来自 `@types/graphql`,写作:

-   东阳 [https://github.com/托尼·皮通内尔(英语:TonyPythoneer)](https://github.com/TonyPythoneer)
-   凯勒布·梅雷迪思 [https://github.com/calebmer (英语)](https://github.com/calebmer)
-   多米尼克·沃森 [https://github.com/intellix (中文(简体) )](https://github.com/intellix)
-   开火 [https://github.com/firede (英语)](https://github.com/firede)
-   凯平纳尔 [https://github.com/kepennar (英语)](https://github.com/kepennar)
-   米哈伊尔·诺维科夫 [https://github.com/freiksenet (中文(简体) )](https://github.com/freiksenet)
-   伊万·贡查罗夫 [https://github.com/ Ivan Goncharov 页面存档备份,存于互联网档案馆](https://github.com/IvanGoncharov)
-   哈盖·科恩 [https://github.com/DxCx 互联网档案馆的存檔,存档日期2013-10-02](https://github.com/DxCx)
-   里卡多·葡萄牙 [https://github.com/rportugal (中文(简体) )](https://github.com/rportugal)
-   蒂姆・格里瑟 [https://github.com/tgriesser (中文(简体) )](https://github.com/tgriesser)
-   迪伦·斯图尔特 [https://github.com/dyst5422 (英语)](https://github.com/dyst5422)
-   阿莱西奥·迪奥尼西 [https://github.com/adnsio (英语)](https://github.com/adnsio)
-   迪维恩杜·辛格 [https://github.com/divyenduz (英语)](https://github.com/divyenduz)
-   布拉德・扎克 [https://github.com/bradzacher (英语)](https://github.com/bradzacher)
-   柯蒂斯莱恩 [https://github.com/clayne11 (英语)](https://github.com/clayne11)
-   乔纳森·卡多佐 [https://github.com/JCMais 页面存档备份,存于互联网档案馆](https://github.com/JCMais)
-   帕维尔·朗 [https://github.com/langpavel (英语)](https://github.com/langpavel)
-   马克·考迪尔 [https://github.com/mc0 (中文(简体) )](https://github.com/mc0)
-   马尔蒂扬·瓦拉文 [https://github.com/martijnwalraven (中文(简体) )](https://github.com/martijnwalraven)
-   毛泽东 [https://github.com/jedmao (英语)](https://github.com/jedmao)

并且根据 [MIT 许可证](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/LICENSE)。 。 。 .

感谢以上所有贡献者!

## 常见问题

### @apollo/graphql 是什么？

一个可针对任何服务的查询语言和运行时间 \.

### 如何安装 @apollo/graphql？

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

### @apollo/graphql 支持 TypeScript 吗？

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

### @apollo/graphql 支持 ESM 还是 CommonJS？

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

### @apollo/graphql 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>= 6\.x。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @apollo/graphql 可以商用吗？

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

### @apollo/graphql 的下载量有多少？

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

### @apollo/graphql 还在维护吗？

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

