GraphQL 代码生成器 - Graphql 文档验证失败
GraphQL Code Generator - Graphql Document Validation Failed
我在 运行 时一直收到错误消息
yarn run graphql-codegen --config codegen.yml
错误说
Found 1 error
✖ src/generated/graphql.tsx
AggregateError: GraphQL Document Validation failed with 1 errors
at Object.checkValidationErrors (/home/tsatsralt/code/st/workspade/web/node_modules/@graphql-tools/utils/index.js:960:1
5)
at Object.codegen (/home/tsatsralt/code/st/workspade/web/node_modules/@graphql-codegen/core/index.cjs.js:102:15)
at async process (/home/tsatsralt/code/st/workspade/web/node_modules/@graphql-codegen/cli/bin.js:992:56)
at async Promise.all (index 0)
at async /home/tsatsralt/code/st/workspade/web/node_modules/@graphql-codegen/cli/bin.js:999:37
at async Task.task (/home/tsatsralt/code/st/workspade/web/node_modules/@graphql-codegen/cli/bin.js:778:17)
codegen.yml
overwrite: true
schema: "http://localhost:4000/graphql"
documents: "src/graphql/**/*.graphql"
generates:
src/generated/graphql.tsx:
plugins:
- "typescript"
- "typescript-operations"
- "typescript-react-apollo
src/graphql/mutations/login.graphql
mutation Login($loginPassword: String!, $loginEmail: String!) {
login(password: $loginPassword, email: $loginEmail) {
errors {
field
message
}
user {
...RegularUser
}
}
}
用户解析器
@Resolver(User)
export class UserResolver {
@Mutation(() => UserResponse)
async login(
@Arg("email") email: string,
@Arg("password") password: string,
@Ctx() { req }: Context
): Promise<UserResponse> { logic }
我完成了 ben awad 的 14 小时全栈 tutorial 并决定做一个类似的项目。但是我 运行 遇到了这个问题。在网上找不到有用的东西,所以我决定在这里问一下。
我也有所有需要的依赖项
好吧,这个问题其实很愚蠢。让我解释一下我的错误:
使用 graphql-codegen 的调试提示:
codegen 并没有真正告诉您究竟是什么导致了错误。试试把
console.error(error) 发生错误的地方。就我而言,我把它放在
/home/tsatsralt/code/st/workspade/web/node_modules/@graphql-tools/utils/index.js
错误几乎告诉我出了什么问题。我得到的错误是
Variable "$input" of type "RegisterInput" used in position expecting type "RegisterInput!".
我使用了一个名为 RegisterInput 的片段,忘记在 register.graphql 文件中添加感叹号。
希望我的错误也对你有所帮助。
我在 运行 时一直收到错误消息
yarn run graphql-codegen --config codegen.yml
错误说
Found 1 error
✖ src/generated/graphql.tsx
AggregateError: GraphQL Document Validation failed with 1 errors
at Object.checkValidationErrors (/home/tsatsralt/code/st/workspade/web/node_modules/@graphql-tools/utils/index.js:960:1
5)
at Object.codegen (/home/tsatsralt/code/st/workspade/web/node_modules/@graphql-codegen/core/index.cjs.js:102:15)
at async process (/home/tsatsralt/code/st/workspade/web/node_modules/@graphql-codegen/cli/bin.js:992:56)
at async Promise.all (index 0)
at async /home/tsatsralt/code/st/workspade/web/node_modules/@graphql-codegen/cli/bin.js:999:37
at async Task.task (/home/tsatsralt/code/st/workspade/web/node_modules/@graphql-codegen/cli/bin.js:778:17)
codegen.yml
overwrite: true
schema: "http://localhost:4000/graphql"
documents: "src/graphql/**/*.graphql"
generates:
src/generated/graphql.tsx:
plugins:
- "typescript"
- "typescript-operations"
- "typescript-react-apollo
src/graphql/mutations/login.graphql
mutation Login($loginPassword: String!, $loginEmail: String!) {
login(password: $loginPassword, email: $loginEmail) {
errors {
field
message
}
user {
...RegularUser
}
}
}
用户解析器
@Resolver(User)
export class UserResolver {
@Mutation(() => UserResponse)
async login(
@Arg("email") email: string,
@Arg("password") password: string,
@Ctx() { req }: Context
): Promise<UserResponse> { logic }
我完成了 ben awad 的 14 小时全栈 tutorial 并决定做一个类似的项目。但是我 运行 遇到了这个问题。在网上找不到有用的东西,所以我决定在这里问一下。
我也有所有需要的依赖项
好吧,这个问题其实很愚蠢。让我解释一下我的错误:
使用 graphql-codegen 的调试提示:
codegen 并没有真正告诉您究竟是什么导致了错误。试试把
console.error(error) 发生错误的地方。就我而言,我把它放在
/home/tsatsralt/code/st/workspade/web/node_modules/@graphql-tools/utils/index.js
错误几乎告诉我出了什么问题。我得到的错误是
Variable "$input" of type "RegisterInput" used in position expecting type "RegisterInput!".
我使用了一个名为 RegisterInput 的片段,忘记在 register.graphql 文件中添加感叹号。
希望我的错误也对你有所帮助。