Goでrealize使ってホットリロードしようとしたらcommand not found & exec: not started

## はじめに
- [NuxtとGoではじめるWebアプリ開発](https://www.amazon.co.jp/dp/B0823H9Z5L/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)を参考に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を実行する

```bash
realize start --run --no-config
```
## 実行したけどcommand not found

```bash
MacBook-Pro:test captain-blue$ realize start --run --no-config
bash: realize: command not found
```

## 調べてみる
- インストールしたパッケージは$GOPATH/binフォルダに入るので、binフォルダを確認する

```bash
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$ 
```
:innocent:いない:innocent:

- ネットでbinが作られない場合について検索してみる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63564/2ae1daa9-f4d6-a159-734a-81cf158b0a42.png)

わりとすんなり類似の事象についてでてきたので、とりあえず一番上に出てきた記事を見てみる。
- [gore を go get しても $GOPATH/bin にバイナリファイルができなかった](https://qiita.com/nagata03/items/cec2587140a376e345a9)

すると、以下の記述を発見。パッケージの[GitHubリポジトリ](https://github.com/oxequa/realize)のREADMEで最新のインストールについて確認する必要がありそう。

> goreのGitHubリポジトリのREADMEに書いてあるインストール方法で無事インストールできた。（2019.5.1時点）

- realizeの[最新README](https://github.com/oxequa/realize/blob/master/README.md)を確認する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63564/be3b6556-ee78-de8c-e536-188be39be222.png)
・・・あれ？合ってる。

- 困ったときは再起動してやり直してみる
あんまり良くはないが、仕事ではよく再起動してやり直すとうまくいくとかよくあったのでVS Code再起動して再度`go get github.com/oxequa/realize`してみる

- 結果

```bash
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をちゃんと設定するといい](https://qiita.com/K_ichi/items/a313f9f8f9a7c5ece151)とかも見つけたので、こちらを先に試すべきだったと反省・・・

## realize実行してみたらexec: not started
```bash
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を置く必要があるらしい
- [こちら参照](https://github.com/oxequa/realize/issues/217#issuecomment-459198990)

※アプリ名やパスなどはご自身の環境に合わせて置き換えてください。

```yml:.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
```

- 結果
 - オプションありだと駄目だったけど、**オプション外したら**動いた

```bash
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/_______
```