Reload
reload
is a fork of the gin project
originally written by Jeremy Saenz.
reload
is a command line utility for live-reloading Go web applications.
Just run reload
in your app directory and your web app will be served with
reload
as a proxy. reload
will automatically recompile your code when it
detects a change. Your app will be restarted the next time it receives an
HTTP request (unless the --immediate
flag is passed).
reload
adheres to the "silence is golden" principle, so it will only complain
if there was a compiler error or if you successfully compile after an error.
Installation
Assuming you have a working Go environment and GOPATH/bin
is in your
PATH
, reload
is a breeze to install:
go get -u github.com/n3integration/reload
Then, verify that reload
was installed correctly:
reload -h
Basic usage
reload [options] run main.go
Options
--laddr value, -l value listening address for the proxy server
--port value, -p value port for the proxy server (default: 3000)
--appPort value, -a value port for the Go web server (default: 3001)
--bin value, -b value name of generated binary file (default: "gin-bin")
--path value, -t value Path to watch files from (default: ".")
--build value, -d value Path to build files from (defaults to same value as --path)
--excludeDir value, -x value Relative directories to exclude
--immediate, -i run the server immediately after it's built
--all reloads whenever any file changes, as opposed to reloading only on .go file change
--buildArgs value Additional go build arguments
--certFile value TLS Certificate
--keyFile value TLS Certificate Key
--logPrefix value Setup custom log prefix
--notifications enable desktop notifications
--help, -h show help
--version, -v print the version
Supporting Reload in Your Web App
reload
assumes that your web app binds itself to the PORT
environment
variable so it can properly proxy requests to your app.
Using flags?
When you normally start your server with flags
if you want to override any of them when running reload
we suggest you
instead use github.com/namsral/flag
as explained in this post