npm 包 apollo-declare 使用教程

什么是 npm?

npm(全称 Node Package Manager),是一个 Node.js 包管理器,通过它安装、管理和分享 Node.js 模块,它是 Node.js 世界里最大的包存储库。

什么是 apollo-declare?

apollo-declare 是一个用于将 .graphql 文件编译为 TypeScript 类型定义的 npm 包。该包可以大幅度减少手写类型定义的繁琐工作,让开发者更快速、更有效地开发。

apollo-declare 的安装

在安装 apollo-declare 之前,你需要先在你的项目中引入以下包:

  • graphql:GraphQL 的 JavaScript 实现
  • @apollo/client:Apollo GraphQL 客户端

接下来,你可以在项目的根目录下,通过以下命令安装 apollo-declare:

npm i apollo-declare

apollo-declare 的使用

利用 CLI 工具将 .graphql 文件转换为 TypeScript 类型定义文件

首先,我们需要使用命令行工具,将 .graphql 文件转换为 TypeScript 类型定义文件。命令格式如下:

apollo-declare /path/to/schema.json /path/to/src/folder --output /path/to/output/folder

其中,

  • /path/to/schema.json 是你的 GraphQL 服务端 schema 文件的路径;
  • /path/to/src/folder 是包含你的 .graphql 文件的文件夹路径;
  • /path/to/output/folder 是用于存放将生成的 TypeScript 类型定义文件的文件夹路径。

比如,我们在本地有一个 GraphQL 服务端,其 schema 文件路径为 /path/to/schema.json,我们的 .graphql 文件存放在 src/graphql 目录下,我们想将编译后的 TypeScript 类型定义文件存放在 src/types 目录下。那么,我们可以通过以下命令进行转换:

apollo-declare /path/to/schema.json src/graphql --output src/types

执行该命令后,apoolo-declare 将会把 src/graphql 文件下的所有 .graphql 文件转换为 TypeScript 类型定义文件,并存放到 src/types 目录下。

使用生成的 TypeScript 类型定义文件

生成的 TypeScript 类型定义文件将与你的 .graphql 文件同名,但后缀名为 .d.ts。

比如,我们在上一步中将 src/graphql 目录下的所有 .graphql 文件转换为 TypeScript 类型定义文件,并存放到 src/types 目录下。其中,src/graphql 目录下有一个名为 user.graphql 的文件。那么,在转换完成后,我们就会在 src/types 目录下看到一个名为 user.d.ts 的文件,其中包含了有关 user.graphql 文件中所有 query 和 mutation 类型的定义。

现在,我们就可以在我们的项目中使用该文件中的类型定义了。比如,在下面的代码中,我们使用了 user.d.ts 文件中定义的 GetUserListQuery 和 GetUserByIdQuery 类型:

import { GetUserListQuery, GetUserByIdQuery } from '../types/user';

// 使用 GetUserListQuery 类型定义
const getUsers = async () => {
  const { loading, error, data } = useQuery<GetUserListQuery>(
    GET_USER_LIST_QUERY,
    {
      variables: {
        // ...
      },
    }
  );

  // ...
};

// 使用 GetUserByIdQuery 类型定义
const getUser = async (userId: string) => {
  const { loading, error, data } = useQuery<GetUserByIdQuery>(
    GET_USER_BY_ID_QUERY,
    {
      variables: {
        userId,
      },
    }
  );

  // ...
};

结论

以上就是 npm 包 apollo-declare 的使用教程。在实际开发中,我们可以经常用到该包来快速、有效地开发 GraphQL 应用程序。希望这篇文章对你有所帮助。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/600673e2fb81d47349e53dfa


纠错
反馈