Search code examples
govisual-studio-codego-modules

VS Code get `BrokenImport` error when I use `replace` in `go.mod` with local require development


VS code gives the following error when I use replace in go.mod:

could not import github.com/ilKhr/protos (no required module provides package ‘github.com/ilKhr/protos’)

project directory structure

/protos
|-gen
| |-go
| | |-sso
| | | |-sso.pb.go <-- package ssov1
| | | |-sso_grpc.pb.go <-- package ssov1
...
|-go.mod
|-go.sum
|-Taskfile.yaml
/sso
|-go.mod
|-...

/protos/go.mod

module github.com/ilKhr/protos  

go 1.23.0

/sso/go.mod

module github.com/ilkhr/sso

go 1.23.0

require github.com/ilKhr/protos v0.0.0-unpublished

replace github.com/ilKhr/protos v0.0.0-unpublished => ../protos

server.go

package auth

import ssov1 "github.com/ilKhr/protos" // <- could not import github.com/ilKhr/protos (no required module provides package "github.com/ilKhr/protos")

Solution

  • The thing is that when I imported ssov1 incorrectly.

    The correct import, it should be done manually, VS Code didn't do it automatically for me

    I.e. literally you need to write import to the directory where Go files are located (see project structure).

    server.go

    package auth
    
    import ssov1 "github.com/ilKhr/protos/gen/go/sso"