1 回答
TA贡献1801条经验 获得超8个赞
$ cd your_project_path/
$ print '// +build tools\npackage tools\nimport _ "github.com/99designs/gqlgen"' | gofmt > ./tools.go
$ echo 'package model' | gofmt > ./graph/model/doc.go
$ go get .
解释
根据快速入门指南,您应该使用生成的代码创建一个包,该代码实际上已经由您的服务器导入:
package main
import (
"log"
"net/http"
"os"
"github.com/99designs/gqlgen/graphql/handler"
"github.com/99designs/gqlgen/graphql/playground"
"your_module_name/graph"
"your_module_name/graph/generated"
)
由于your_module_name/graph/generated没有*.go文件,您无法启动服务器,如果您尝试,您将收到如下错误:
graph/schema.resolvers.go:10:2: no required module provides package your_module_name/graph/generated; to add it:
要生成该包,您需要执行go run github.com/99designs/gqlgen generate,但还有另一个问题:gqlgen生成使用另一个仍然不存在的包的代码,即your_module_name/graph/model.
需要额外的步骤添加build约束以indirect在生成过程中不删除依赖项。这就是为什么有下划线 import的第一步。
如果您使用指令将任何*.go文件放入该目录- 现在一切正常:package
$ cd your_project_path/
$ print '// +build tools\npackage tools\nimport _ "github.com/99designs/gqlgen"' | gofmt > ./tools.go
$ echo 'package model' | gofmt > ./graph/model/doc.go
$ go get .
- 1 回答
- 0 关注
- 123 浏览
添加回答
举报