IDE linter无法解决转到本地模块的导入

问题描述 投票:-1回答:1

代码可以很好地编译,但是当使用replace指令将程序包名称映射到本地目录时,Go linter无法进行处理。

我已经在VSCode和Goland上都尝试过,两者都有皮棉错误,如下所示。该图像是额外的信息,所有代码和错误消息均以文本格式显示在下面。

enter image description here

存储库:https://github.com/webberwang/go-lint-error

这是文件夹结构:

/core
  /calc
    math.go
    go.mod
/main
  app.go
  go.mod
// main/app.go

package main

import (
    "fmt"
    "github.com/codelabstudios/core/calc" <- ERROR "Cannot resolve directory 'core'"
)

func main() {
    result := calc.Add(1, 2) <- ERROR "Unresolved reference 'Add'"
    fmt.Println("calc.Add(1, 2) => ", result)
}
// main/go.mod

module github.com/codelabstudios/main

go 1.14

require github.com/codelabstudios/core v0.0.0-00010101000000-000000000000

replace github.com/codelabstudios/core => ../core
// core/calc/math.go

package main

import (
    "fmt"
    "github.com/codelabstudios/core/calc"
)

func main() {
    result := calc.Add(1, 2)
    fmt.Println("calc.Add(1, 2) => ", result)
}
// core/calc/go.mod

module github.com/codelabstudios/core

go 1.14
go visual-studio-code lint goland golint
1个回答
0
投票

替换行位于您的require语句上方,例如:

replace github.com/codelabstudios/core => ../core

require github.com/codelabstudios/core v0.0.0-00010101000000-000000000000

现在,当您编译此模块时,它将使用您的本地代码,而不是其他依赖项。

© www.soinside.com 2019 - 2024. All rights reserved.