1

我正在使用 React + Postgraphile (GraphQL) + axios(对 postgraphile 服务器的 http 请求)的技术组合进行项目。

它有很多 GraphQL 查询。最初从与其他 JavaScript 和渲染代码在同一文件中的查询开始,但一旦添加特定查询,它就变得混乱。

在搜索时我开始知道我们可以将查询分离到单独的文件中 - .graphql 或 .gql 为此,我必须与 Webpack 模块集成 -

我想知道是否有更简单(开箱即用)的方法可以在不使用 Webpack 的情况下实现类似的事情,因为它需要大量的配置。

任何指针或示例都会非常有帮助。

谢谢你。

4

3 回答 3

3

在客户端上,我们通常创建pages目录的镜像树,graphql然后创建jsts导出查询的文件!然后在需要的地方导入它(在我们的例子中是 graphql 客户端请求正文)。

例如:

export const GET_TEAM_QUERY = `
  query {
    // your query here
  }
`

希望有帮助!

于 2020-06-23T06:51:01.710 回答
1

我找到了一个非常巧妙的解决方案:graphql-code-generator。使用此工具,您可以将查询和片段编写在单独的文件中,并将它们编译为 typescript 文件,完全类型安全并准备好导入到您的组件中。

于 2021-06-25T11:54:41.083 回答
0

.js由于导入/需要不是or的文件是非标准功能.json,因此您需要某种插件来告诉运行时如何解释它而不是崩溃。我知道的两种方式是:

module.exports = {
  // ...
  module: {
    rules: [
      // babel loader, css imports,
      {
        test: /\.(graphql|gql)$/,
        exclude: /node_modules/,
        loader: 'graphql-tag/loader'
      },
    ],
  },
  // ...
}

  • 或者,在 babel 中使用babel-plugin-import-graphql,虽然这个插件只是模仿了上述 webpack 加载器的功能,实际上建议在 graphql-tag 旁边使用它来减少编译查询的大小。如果您需要使用 运行代码,这很有用babel-node,但我建议在大多数情况下使用上述 webpack 加载器。
于 2021-06-10T04:09:29.560 回答