$ ls * go.mod main.go hello: go.mod hello.go $
$ cat go.mod module example.com/fourier go 1.18 $
$ cat hello/go.mod module example.com/fourier/hello go 1.18 $
$ go run . main.go:5:2: no required module provides package example.com/fourier/hello; to add it: go get example.com/fourier/hello $ go work init . ./hello $ ls go.mod go.work hello main.go $ cat go.work go 1.18 use ( . ./hello ) $ go run . Hello world Architecture: darwin $
$ pwd /Users/siliconSavanna/Projects/Golang/fourier $ mkdir main $ mv main.go ./main $ cd main $ go mod init example.com/fourier/main go: creating new go.mod: module example.com/fourier/main go: to add module requirements and sums: go mod tidy $
$ cd ../ $ pwd /Users/siliconSavanna/Projects/Golang/fourier $ rm go.work $ go work init ./main ./hello $ cat go.work go 1.18 use ( ./hello ./main ) $ go run main/main.go Hello world Architecture: darwin $
$ cd ../ $ pwd /Users/siliconSavanna/Projects/Golang/fourier $ rm go.work $ cd main $ go mod edit -replace example.com/fourier/hello=../hello $ go mod tidy go: found example.com/fourier/hello in example.com/fourier/hello v0.0.0-00010101000000-000000000000 $ go run . Hello world Architecture: darwin $
$ cat go.mod module example.com/fourier/main go 1.18 replace example.com/fourier/hello => ../hello require example.com/fourier/hello v0.0.0-00010101000000-000000000000 $