我安裝了 golang 并開始使用本教程:https ://www.howtographql.com/graphql-go/1-getting-started/
當我運行時:
go run github.com/99designs/gqlgen generate
我得到:
reloading module info
generating core failed: unable to load github.com/my-user/hackernews/graph/model - make sure you're using an import path to a package that exists
exit status 1
我的設定有什么問題?這是我的gopath
/Users/my-pc-user/go
uj5u.com熱心網友回復:
TLDR
$ 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 .
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/429818.html
