1 回答

TA貢獻1801條經(jīng)驗 獲得超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 .
解釋
根據(jù)快速入門指南,您應該使用生成的代碼創(chuàng)建一個包,該代碼實際上已經(jīng)由您的服務器導入:
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:
要生成該包,您需要執(zhí)行g(shù)o run github.com/99designs/gqlgen generate,但還有另一個問題:gqlgen生成使用另一個仍然不存在的包的代碼,即your_module_name/graph/model.
需要額外的步驟添加build約束以indirect在生成過程中不刪除依賴項。這就是為什么有下劃線 import的第一步。
如果您使用指令將任何*.go文件放入該目錄- 現(xiàn)在一切正常: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 關(guān)注
- 140 瀏覽
添加回答
舉報