使用 webpack-blocks-graphql 进行前端开发的详细教程

阅读时长 9 分钟读完

这里我们将介绍 webpack-blocks-graphql 这个优秀的 npm 包,这个包是为了在前端局部管理 GraphQLSchemaMock 数据,可以很好的增强前端的开发体验。

什么是 webpack-blocks-graphql?

webpack-blocks-graphql 是一个 Webpack 扩展,它提供了一组预定义的块,可以方便地实现 GraphQLSchemaMock 数据的管理。

它提供了以下特性:

  • 模板字符串的 GraphQL 查询转换支持。
  • TypeScript 支持。
  • 定义 Mock 数据支持。
  • HotModuleReplacement 和 开发模式下自动重建支持。

安装

使用 npm 安装:

配置

Webpack 配置文件中,添加以下规则来处理 GraphQL 文件:

现在我们可以在项目中使用 .graphql 文件或字符串直接进行查询。

例如,在一个 .graphql 文件中:

可以导入这个查询,然后在代码中使用:

一个完整的例子

我们将利用该扩展编写一个小应用程序,这个应用程序展示了如何管理开发中的 GraphQL SchemaMock 数据。

项目初始化

创建一个新目录,然后初始化一个新的 npm 包:

将主入口文件更改为 src/index.ts,安装必需的软件包:

然后在新项目根目录中创建一个 tsconfig.json 文件:

-- -------------------- ---- -------
-
  ------------------ -
    --------- ---------
    --------- ---------
    ------------------ -----
    ------------ -----
    --------- -------
    --------- -----
    ------------------- -------
    ------ --------
    ------------------------------- -----
    -------------------- ----
  --
  ---------- ------------
-

然后在 src 文件夹中创建一个名为 schema.graphql 的文件,以模拟我们的服务端模式。

-- -------------------- ---- -------
---- ---- -
  --- ---
  ------ -------
  ----- -------
  ---------- -------
  ------- -------
-

---- ----- -
  ------ --------
-

然后,我们将创建一个名为 posts.graphql 的文件,它表示一些内存中的 Post 数据。

-- -------------------- ---- -------
- --- ------ --
------ --------

---- ---- -
  --- ---
  ------ -------
  ----- -------
  ---------- ---------
  ------- -------
-

---- ----- -
  ------ --------
-

------ -
  ------ -----
-

编写应用程序代码

我们将编写一些应用程序代码,在它们中,我们将查询和呈现我们的测试数据。我们需要创建两个文件:src/index.tsxsrc/components/App.tsx

App

这是我们的主 React 组件代码:

-- -------------------- ---- -------
------ - -- ----- ---- -------
------ - ------- - ---- -------------------------------
------ - -------- - ---- ---------------------
------ - --- - ---- --------------
------ - ---------- - ---- --------------

----- ----------- - ----
  ----- ----- -
    ----- -
      --
      -----
      ------
      ----
      ---------
    -
  -
-

----- ---- - ------- - ----- --- -- -- -
  ----- - ---- - - -----

  ------ -
    ---- --------------
      ---------------------
      ------------------
      -------
        ---------------- -- -------------
      --------
    ------
  -
-

------ ----- --- - -- -- -
  ----- - -------- ------ ---- - - ---------------------
  ------ -
    -------------------- -------- -------- ------ ---- ---
      -----
        -------- -- --------------------
        ------ -- -
          ---------- --------------------------- ------- -- -- --------------
        --
        --------- -- ------ -- --------------------- -- ----- ----------- ----
      ------
    ----------------------
  -
-

index.tsx

这是我们的 React 入口代码:

-- -------------------- ---- -------
------ - -- ----- ---- -------
------ - -- -------- ---- -----------
------ - -------------- - ---- ---------------------
------ ------------ ---- --------------
------ - --- - ---- ------------------
------ ------ ---- ------------------

----- ------ - --- --------------
  ---- ---------------------------------
--

----------------
  --------------- ----------------
    ---- --------------- --
  ------------------
  ------------------------------
-

添加 Webpack 配置

创建 webpack.config.js 文件,如下所示:

-- -------------------- ---- -------
----- - ------------ - - -------------------------
----- - -------------------- -------------------- - - ---------------------------------
----- ---- - ---------------
----- ----------------- - ------------------------------

-------------- - --------------
  -- -- --
    ------- -
      --------- ------------
      ----- ----------------------- --------
    --
    -------- -
      --- -------------------
        --------- -- ----- -------- ---
      ---
    --
  ---
  ---------------------
    ------- -----------------------
    ----- --------------------------------------------
  ---
  -- -- --
    ------- -
      ------ -
        -
          ----- ------------
          -------- ---------------
          ---- --------------
        --
      --
    --
    -------- -
      ----------- ------- ------- ------ --------
    --
  ---
--

我们使用了 webpack 扩展 webpack-blocks 的样式来配置 HotModuleReplacement 和加入我们的 GraphQL 规则。现在,运行开发服务器:

现在可以访问 http://localhost:8080 了,可以看到正在运行我们的应用程序。

结论

我们已经学习了如何使用非常方便的 webpack-blocks-graphql 扩展来管理我们的 GraphQL Schema 和提供 Mock 数据。这样的所有功能都很容易配置,且能提高前端开发的工作效率。

作为总结,webpack-blocks-graphql 是处理 GraphQL 在前端开发中的最好工具。不仅它提供一组预定义的块来处理 SchemaMock 数据的管理,还可以使用它提供的其他功能。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005601d81e8991b448de486

纠错
反馈