无法为以下指针找到任何 GraphQL 类型定义:src/**/*.graphql
Unable to find any GraphQL type definitions for the following pointers: src/**/*.graphql
我正在使用 @graphql-codegen/cli
工具从我的 graphql 服务器生成打字稿类型。
这是我的 codegen.yml
内容:
overwrite: true
schema: "http://localhost:3001/graphql"
documents: "src/**/*.graphql"
generates:
src/generated/graphql.tsx:
plugins:
- "typescript"
- "typescript-operations"
- "typescript-react-apollo"
./graphql.schema.json:
plugins:
- "introspection"
这是我用来生成类型 (yarn schema
) 的 package.json
脚本:
"schema": "graphql-codegen --config codegen.yml"
所有这些都是通过执行 cli 向导自动生成的 yarn codegen init
。
但是当我 运行 yarn schema
时,这些是我得到的错误:
(服务器正 运行 正在 http://localhost:3001/graphql
并公开图形模式。
感谢您的帮助和建议
这是托管在我的服务器中的 .graphql 文件 (http://localhost:3001/graphql
# -----------------------------------------------
# !!! THIS FILE WAS GENERATED BY TYPE-GRAPHQL !!!
# !!! DO NOT MODIFY THIS FILE BY YOURSELF !!!
# -----------------------------------------------
"""Date custom scalar type"""
scalar Date
type Mutation {
create_user(user: UserInput!): User!
create_pofficer(pofficer: POfficerCreateInput!): POfficer!
create_incident(incident: TIncidentInput!): TIncident!
add_incident_type(incident_type: TIncidentTypeInput!): TIncidentType!
}
type POfficer {
_id: ID!
userid: ID!
user: User!
}
input POfficerCreateInput {
name: String!
surname: String!
phone: String!
}
type Query {
users: [User!]!
pofficers: [POfficer!]!
incidents: [TIncident!]!
incident_types: [TIncidentType!]!
}
type TIncident {
_id: ID!
createdAt: Date!
incidenttype_id: ID!
pofficer_id: ID!
toffender_id: ID
toffender_phone: String!
carnumber: String!
incident_status: String!
pofficer: POfficer!
toffender: User!
incident_type: TIncidentType!
}
input TIncidentInput {
incidenttype_id: ID!
pofficer_id: ID!
toffender_phone: String!
carnumber: String!
}
type TIncidentType {
_id: ID!
name: String!
description: String
}
input TIncidentTypeInput {
name: String!
description: String
}
type User {
_id: ID!
name: String!
surname: String!
email: String
phone: String!
}
input UserInput {
name: String!
surname: String!
email: String!
phone: String!
}
您共享的文件是您的架构(由您的服务器生成),但您似乎没有在其之上创建任何查询或变更。这就是代码生成器无法正常工作的原因。
我建议您使用简单的查询创建一个新文件,例如:get-users.query.graphql
query GetUsers {
user {
_id
__typename
name
surname
email
phone
}
}
并将其添加到您的 src
文件夹(因为您的代码生成器配置为在您的 src
文件夹中查找所有 .graphql
文件)。然后重新运行代码生成器,看看它是否正常工作。
之后,您可以使用您的查询和变更生成各种 .graphql
文件,并使用代码生成器生成相应的类型。
在我的例子中,我将所有查询重构到一个新文件夹中的单个文件中:lib/queries.tsx
。
然后我需要做的是将该文件路径添加到 codegen.yml
:
documents:
- "./lib/queries.tsx"
请检查您的操作文件的后缀,并据此更改此文件,可能您的文件后缀是.ts 或.js,在codegen.yml 文档中默认为
documents: "src/**/*.graphql"
将.graphql替换成你的操作文件名的后缀,如.ts或.js
那是我的问题,或者文件地址有误
在某些情况下,此错误可能是由于您的项目的绝对路径中有空格所致。
例如:/home/my project folder with spaces/node_modules/*
我正在使用 @graphql-codegen/cli
工具从我的 graphql 服务器生成打字稿类型。
这是我的 codegen.yml
内容:
overwrite: true
schema: "http://localhost:3001/graphql"
documents: "src/**/*.graphql"
generates:
src/generated/graphql.tsx:
plugins:
- "typescript"
- "typescript-operations"
- "typescript-react-apollo"
./graphql.schema.json:
plugins:
- "introspection"
这是我用来生成类型 (yarn schema
) 的 package.json
脚本:
"schema": "graphql-codegen --config codegen.yml"
所有这些都是通过执行 cli 向导自动生成的 yarn codegen init
。
但是当我 运行 yarn schema
时,这些是我得到的错误:
(服务器正 运行 正在 http://localhost:3001/graphql
并公开图形模式。
感谢您的帮助和建议
这是托管在我的服务器中的 .graphql 文件 (http://localhost:3001/graphql
# -----------------------------------------------
# !!! THIS FILE WAS GENERATED BY TYPE-GRAPHQL !!!
# !!! DO NOT MODIFY THIS FILE BY YOURSELF !!!
# -----------------------------------------------
"""Date custom scalar type"""
scalar Date
type Mutation {
create_user(user: UserInput!): User!
create_pofficer(pofficer: POfficerCreateInput!): POfficer!
create_incident(incident: TIncidentInput!): TIncident!
add_incident_type(incident_type: TIncidentTypeInput!): TIncidentType!
}
type POfficer {
_id: ID!
userid: ID!
user: User!
}
input POfficerCreateInput {
name: String!
surname: String!
phone: String!
}
type Query {
users: [User!]!
pofficers: [POfficer!]!
incidents: [TIncident!]!
incident_types: [TIncidentType!]!
}
type TIncident {
_id: ID!
createdAt: Date!
incidenttype_id: ID!
pofficer_id: ID!
toffender_id: ID
toffender_phone: String!
carnumber: String!
incident_status: String!
pofficer: POfficer!
toffender: User!
incident_type: TIncidentType!
}
input TIncidentInput {
incidenttype_id: ID!
pofficer_id: ID!
toffender_phone: String!
carnumber: String!
}
type TIncidentType {
_id: ID!
name: String!
description: String
}
input TIncidentTypeInput {
name: String!
description: String
}
type User {
_id: ID!
name: String!
surname: String!
email: String
phone: String!
}
input UserInput {
name: String!
surname: String!
email: String!
phone: String!
}
您共享的文件是您的架构(由您的服务器生成),但您似乎没有在其之上创建任何查询或变更。这就是代码生成器无法正常工作的原因。
我建议您使用简单的查询创建一个新文件,例如:get-users.query.graphql
query GetUsers {
user {
_id
__typename
name
surname
email
phone
}
}
并将其添加到您的 src
文件夹(因为您的代码生成器配置为在您的 src
文件夹中查找所有 .graphql
文件)。然后重新运行代码生成器,看看它是否正常工作。
之后,您可以使用您的查询和变更生成各种 .graphql
文件,并使用代码生成器生成相应的类型。
在我的例子中,我将所有查询重构到一个新文件夹中的单个文件中:lib/queries.tsx
。
然后我需要做的是将该文件路径添加到 codegen.yml
:
documents:
- "./lib/queries.tsx"
请检查您的操作文件的后缀,并据此更改此文件,可能您的文件后缀是.ts 或.js,在codegen.yml 文档中默认为
documents: "src/**/*.graphql"
将.graphql替换成你的操作文件名的后缀,如.ts或.js
那是我的问题,或者文件地址有误
在某些情况下,此错误可能是由于您的项目的绝对路径中有空格所致。
例如:/home/my project folder with spaces/node_modules/*