はじめに
- NuxtとGoではじめるWebアプリ開発を参考にGoでAPIサーバーつくるにあたってホットリロードするためにrealizeを入れたけど、command not foundになってしまうのを解決するまでにやったことになります。
- ついでにcommand not found解決したらexec: not startedにもなったのでそれを解決するのやったことも書きました。
環境
- OS:maOS Catalina 10.15.5
- Go:go version go1.14.4 darwin/amd64
- Visual Studio Code version 1.47
ホットリロード用のライブラリとしてrealizeを導入する
go get github.com/oxequa/realize
- PJルートディレクトリに移動し、realizeを実行する
realize start --run --no-config
実行したけどcommand not found
MacBook-Pro:test captain-blue$ realize start --run --no-config
bash: realize: command not found
調べてみる
- インストールしたパッケージは$GOPATH/binフォルダに入るので、binフォルダを確認する
MacBook-Pro:bin captain-blue$ pwd
/Users/captain-blue/go/bin
MacBook-Pro:bin captain-blue$ ls -la
total 235512
drwxr-xr-x 12 captain-blue staff 384 7 20 09:21 .
drwxr-xr-x 7 captain-blue staff 224 7 9 20:30 ..
-rwxr-xr-x 1 captain-blue staff 18481612 6 21 19:10 dlv
-rwxr-xr-x 1 captain-blue staff 4588248 6 15 22:22 go-outline
-rwxr-xr-x 1 captain-blue staff 13215844 6 15 22:23 gocode
-rwxr-xr-x 1 captain-blue staff 12765100 7 20 00:36 gocode-gomod
-rwxr-xr-x 1 captain-blue staff 9169032 6 21 18:08 godef
-rwxr-xr-x 1 captain-blue staff 5452744 6 15 22:23 gopkgs
-rwxr-xr-x 1 captain-blue staff 21942076 7 20 00:30 gopls
-rwxr-xr-x 1 captain-blue staff 7990872 6 15 22:23 goreturns
-rwxr-xr-x 1 captain-blue staff 9448960 6 27 21:35 guru
MacBook-Pro:bin captain-blue$
いない
- ネットでbinが作られない場合について検索してみる
わりとすんなり類似の事象についてでてきたので、とりあえず一番上に出てきた記事を見てみる。
すると、以下の記述を発見。パッケージのGitHubリポジトリのREADMEで最新のインストールについて確認する必要がありそう。
goreのGitHubリポジトリのREADMEに書いてあるインストール方法で無事インストールできた。(2019.5.1時点)
-
realizeの最新READMEを確認する
・・・あれ?合ってる。 -
困ったときは再起動してやり直してみる
あんまり良くはないが、仕事ではよく再起動してやり直すとうまくいくとかよくあったのでVS Code再起動して再度go get github.com/oxequa/realize
してみる -
結果
MacBook-Pro:bin captain-blue$ ls -la
total 235512
drwxr-xr-x 12 captain-blue staff 384 7 20 09:21 .
drwxr-xr-x 7 captain-blue staff 224 7 9 20:30 ..
-rwxr-xr-x 1 captain-blue staff 18481612 6 21 19:10 dlv
-rwxr-xr-x 1 captain-blue staff 4588248 6 15 22:22 go-outline
-rwxr-xr-x 1 captain-blue staff 13215844 6 15 22:23 gocode
-rwxr-xr-x 1 captain-blue staff 12765100 7 20 00:36 gocode-gomod
-rwxr-xr-x 1 captain-blue staff 9169032 6 21 18:08 godef
-rwxr-xr-x 1 captain-blue staff 5452744 6 15 22:23 gopkgs
-rwxr-xr-x 1 captain-blue staff 21942076 7 20 00:30 gopls
-rwxr-xr-x 1 captain-blue staff 7990872 6 15 22:23 goreturns
-rwxr-xr-x 1 captain-blue staff 9448960 6 27 21:35 guru
-rwxr-xr-x 1 captain-blue staff 16621260 7 20 09:21 realize
うまくいった。
※あとで$GOBINをちゃんと設定するといいとかも見つけたので、こちらを先に試すべきだったと反省・・・
realize実行してみたらexec: not started
MacBook-Pro:goliff captain-blue$ realize start --run --no-config
[22:34:19][GOLIFF] : Watching 3 file/s 7 folder/s
[22:34:19][GOLIFF] : Install started
[22:34:19][GOLIFF] : Install
exec: not started
調査
- 調べたら、realizeは内部で
go install
を使おうとするが、go modulesを使っているとエラーになるらしく、プロジェクトルートディレクトリに.realize.yamlを置く必要があるらしい - こちら参照
※アプリ名やパスなどはご自身の環境に合わせて置き換えてください。
.realize.yaml
settings:
legacy:
force: false
interval: 0s
schema:
- name: goliff
path: .
commands:
install:
status: true
method: go build -o goliff // go build -o <path/to/built/binary>
run:
status: true
method: ./goliff
watcher:
extensions:
- go
paths:
- /
ignored_paths:
- .git
- .realize
- vendor
- 結果
- オプションありだと駄目だったけど、オプション外したら動いた
MacBook-Pro:goliff captain-blue$ realize start
[22:45:10][GOLIFF] : Watching 3 file/s 7 folder/s
[22:45:10][GOLIFF] : Install started
[22:45:12][GOLIFF] : Install completed in 1.873 s
[22:45:12][GOLIFF] : Running..
[22:45:13][GOLIFF] : ____ __
[22:45:13][GOLIFF] : / __/___/ / ___
[22:45:13][GOLIFF] : / _// __/ _ \/ _ \
[22:45:13][GOLIFF] : /___/\__/_//_/\___/ v3.3.10-dev
[22:45:13][GOLIFF] : High performance, minimalist Go web framework
[22:45:13][GOLIFF] : https://echo.labstack.com
[22:45:13][GOLIFF] : ____________________________________O/_______