[Go] Realize가 편하니까 다시 친해지자.
Go에서 개발을 진행하면 매번
go run ...
마다 번거롭습니다. Go의 사람들은 핫 리셋(현장 리셋) 도구를 사용합니다. 그 중에서 저는 현재 가장 편리하게 사용할 수 있는realize의 사용 방법을 대체적으로 정리했습니다.아무튼 인스타일.
$ go get -u github.com/oxequa/realize
사용법
프로젝트 노선에서 아래 명령을 입력하면 완성할 수 있다
.realize.yaml
.$ realize start
내용은 이런 느낌.realize.yaml
settings:
legacy:
force: false
interval: 0s
server:
status: false
open: false
port: 5002
host: localhost
schema:
- name: realize-sample
path: .
commands: {}
watcher:
paths:
- /
extensions:
- go
ignored_paths:
- .git
- .realize
- vendor
한 번ctl+C
을 닫고 --server 옵션을 추가하여 실행합니다.$ realize start --server
방문http://localhost:5002이 가능하므로 열어보면 대상 항목의 상황별 확인이 가능하다.서류에 추가하거나 수정해 보면 어떤 서류를 만들었는지 알 수 있다.
참고로 -open 옵션을 추가해서 실행하면 브라우저에서 마음대로 열 수 있습니다.
모니터링
저는 평소에 echo 서비스를 많이 사용하기 때문에 echo 서버를 시작한 상태에서 열중량을 유효한 상태로 만듭시다.
.realize.yaml에서 다음과 같은 내용을 보충합니다.
realize.yaml
schema:
- name: realize-sample
path: .
# 修正ここから
commands:
run:
status: true
# 修正ここまで
watcher:
paths:
- /
다시 실행realize start --server
.그래서 저는 echo가 시작할 때 익숙한 AA를 Realize 관리 화면Outputs
에 한 줄씩 표시하고 싶습니다.그나저나 리얼라이즈 내부에도 echo를 사용합니다.
(Fresh 같은 걸로 바꾸고 싶다는 생각이 들었어요)
Go 파일 이외에도 핫 리로드 객체로 사용
기본적으로 go만 감시할 수 있습니다.다른 파일을 감시 대상으로 삼으면 extensions에 추가하십시오.예를 들어''와'yaml'을 대상으로 하는 경우 다음과 같은 내용을 쓸 수 있다.
realize.yaml
watcher:
paths:
- /
extensions:
- go
- html
- yaml
여러 항목이realize 관리하에 있음
현재 프로젝트 노선
.realize.yaml
에서 여러 프로젝트를 통일적으로 관리할 수 있다.이 경우 path는 다음과 같습니다.realize.yaml
schema:
- name: realize-sample
path: /path/to/realize-sample
commands:
이렇게 하면 매번 창고에 프로필을 놓을 필요가 없기 때문에 각자의 사용자 정의 설정에 따라 처리할 수 있다.참고로 관리하던 프로젝트 설정을 취소할 때는 다음과 같다.
$ realize remove --name="realize-sample"
상호 작용 설정
realize init
후 대화에서 창설.realize.yaml
할 수 있습니다.질문을 받은 내용은 다음과 같다.(누락된 것이 있으면 저에게 메시지를 남겨주시면 기쁩니다.
Question
Default
보태다
Would you want to customize settings? [y/n]
n
n으로 설정된 경우 항목만 설정
Set max number of open files (root required) [int]
os default
Force polling watcher? [y/n]
n
Enable logging files [y/n]
n
Enable web server [y/n]
n
Server port [int]
5002
Server host [string]
localhost
Open in current browser [y/n]
n
- Open과 동일
Would you want to add a new project? (insert '!' to stop) [y/n]
y
Project name [string]
프로젝트 전체 경로
Project path [string]
프로젝트 전체 경로
Enable go vet [y/n]
n
Vet additional arguments [string]
none
Enable go fmt [y/n]
n
Enable go test [y/n]
n
Enable go clean [y/n]
n
Enable go generate [y/n]
n
Enable go install [y/n]
y
Install additional arguments [string]
none
Enable go build [y/n]
n
Enable go run [y/n]
y
Customize watching paths [y/n]
n
모니터링 경로 설정
Customize ignore paths [y/n]
n
Add an additional argument [y/n]
n
Add a 'before' custom command (insert '!' to stop) [y/n]
none
Insert a command [string]
ex ls -al
Launch from a specific path [string]
n
Tag as global command [y/n]
n
Display command output [y/n]
n
Add an 'after' custom commands (insert '!' to stop) [y/n]
none
Insert a command [string]
ex. pwd
Launch from a specific path [string]
n
Tag as global command [y/n]
n
Display command output [y/n]
n
Set an error output pattern [string]
none
설정 파일이 여러 개 있을 때?
그럼에도 불구하고
realize start
시에는 설정 파일이 있으면 사용하고 없으면 제작하기 때문에 현재 디렉터리.realize.yaml
를 바탕으로realize가 시작됩니다.기타
지금도 개발이 진행되고 있어 규격 변경이 자주 발생한다.
예를 들어
realize start
이전에도 realize run
였다.또한, README.md도 좀 낡았어요. 현재 설정 파일에 로그 파일을 설정하는 출력은 다음과 같은 예가 있어요.
realize.yaml
settings:
legacy:
resources:
outputs: outputs.log
logs: logs.log
errors: errors.log
...
현재 출력 결과는 다음과 같다.realize.yaml
settings:
files:
outputs:
status: false
path: ""
name: .r.outputs.log
logs:
status: false
path: ""
name: .r.logs.log
errors:
status: false
path: ""
name: .r.errors.log
...
총결산
현재 공개된 정보와 사용 편의성은 다소 다르지만, 기존의 핫 리셋 도구와 비교하면
하지만 다른 도구를 사용하지 않았기 때문에 더 좋은 도구를 알고 있는 사람이 아래 댓글로 몰래 알려주면 즐거울 거예요
그럼!
보태다
그나저나 제가 릴리즈
go get
에 있을 때 아래의 포장으로 욕을 먹었어요.realize/Gopkg.lock에 적힌 지점에 맞추어 잘했어.# cd /path/to/go/src/golang.org/x/sys; git pull --ff-only
You are not currently on a branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
package golang.org/x/sys/unix: exit status 1
# cd /path/to/go/src/golang.org/x/crypto; git pull --ff-only
You are not currently on a branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
package golang.org/x/crypto/acme/autocert: exit status 1
# cd /path/to/go/src/golang.org/x/net; git pull --ff-only
You are not currently on a branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
package golang.org/x/net/websocket: exit status 1
# cd /path/to/go/src/gopkg.in/yaml.v2; git pull --ff-only
You are not currently on a branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
package gopkg.in/yaml.v2: exit status 1
Reference
이 문제에 관하여([Go] Realize가 편하니까 다시 친해지자.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/enta0701/items/9f60ad18600acab8c93d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)