gpt4 book ai didi

Go Dep - 在 dep 确保后缺少子包 "chi/middleware"

转载 作者:IT王子 更新时间:2023-10-29 01:43:44 25 4
gpt4 key购买 nike

运行 dep ensure 后,go-chi 缺少中间件子包。

project-backend     |  main.go:8:2: cannot find package "github.com/go-chi/chi/middleware" in any of:
project-backend | /go/src/backend/vendor/github.com/go-chi/chi/middleware (vendor tree)
project-backend | /usr/local/go/src/github.com/go-chi/chi/middleware (from $GOROOT)
project-backend | /go/src/github.com/go-chi/chi/middleware (from $GOPATH)

我的 Docker 文件,我还在我的 docker-compose.yaml 文件中挂载了我的代码卷

FROM golang:1.12

WORKDIR /go/src/backend
COPY Gopkg.toml Gopkg.lock ./
RUN go get -u github.com/golang/dep/cmd/dep
COPY . ./
RUN dep ensure

RUN go get github.com/pilu/fresh

CMD [ "fresh" ]

Gopkg.toml


[prune]
go-tests = true
unused-packages = true
non-go = true

[[constraint]]
name = "github.com/go-chi/chi"
version = "4.0.2"

我的代码,只是一个基本的路由器,用于测试我的 docker 和 dep 配置。

package main

import (
"fmt"
"net/http"

"github.com/go-chi/chi"
"github.com/go-chi/chi/middleware"
)

func main() {
r := chi.NewRouter()
r.Use(middleware.Logger)

port := ":8080"

r.Get("/api", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("API is working!"))
})

format := "\033[1;36m%s\033[0m"
fmt.Printf(format, "Build success, running on port "+port)
http.ListenAndServe(port, r)
}

我的代码在使用 go get 时运行良好。但是在 dep 上,它缺少它的子包。

最佳答案

由于您使用的是 Go 1.12,您能否尝试查看使用 go mod (Go 1.11+ Modules) 时问题是否仍然存在? .

$ export GO111MODULE=on                         # manually active module mode
$ cd $GOPATH/src/<project path> # e.g., cd $GOPATH/src/you/hello
$ go mod init

go mod init 将执行您的 dep Gopkg.lock 文件。
它应该检测并获取您丢失的依赖项。
如果这有效,则运行 go mod tidy 以可能修剪任何无关的要求。

关于Go Dep - 在 dep 确保后缺少子包 "chi/middleware",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55779784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com