这篇文章主要介绍文件变更时自动重载去程序的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
许多人希望在写去时拥有实时加载代码(热编译)的效果,特别是那些习惯使用JavaScript、Python和Ruby等解释语言的人,本文介绍了5种实时重新加载去程序的方法。
本文假设已安装去编译器,并且已将<代码> GOPATH/bin/<代码>路径添加到路径环境变量中。
在开始之前,我们先创建一个简单的web服务器,可以返回响应内容“Hello, World”。
包mainimport ( “;net/http")函数main () { http.HandleFunc (“/癴unc (w http。ResponseWriter r * http.Request) { w.Write([]字节(“你好,World")) }) http.ListenAndServe (“: 5000“, nil)}
方法1:使用空气
是一个命令行程序,可以为去程序提供实时代码加载。
通过运行以下命令来安装空气。
去- u github.com/cosmtrek/air
下一步,在使用项目的根目录中创建空气配置文件<代码> .air.conf> 代码。
# .air.conf # toml配置文件来源于(空气)(https://github.com/cosmtrek/air) #工作区间 #。(当前目录)或绝对路径,注意这些目录都在根目录下面。根=?”tmp_dir=皌mp"[制造]#只是普通的壳命令。可以使用“做”。 cmd=叭ス菇? o。/tmp/主要的管理者;# cmd的配置命令输出的二进制文件的位置。 本=皌mp/main" #自定义二进制输出。 full_bin=癆PP_ENV=dev APP_USER=空气。/tmp/main" #监听的文件扩展后缀列表。 include_ext=[“go",“tpl",“tmpl",“html"] #忽略这些文件扩展名或目录。 exclude_dir=[“assets",“tmp",“vendor",“前端/node_modules"] #如果指定,则监听包含这些文件。 include_dir=[] #忽略文件列表。exclude_file=[] #如果文件修改太频繁,则不必在每次修改时都立刻触发构建,设置触发等待时间。 延迟=1000 #女士 #发生编译错误时,是否停止旧的二进制程序。 stop_on_error=true #该日志文件放置在tmp_dir中。 日志=癮ir_errors.log"【日志】#日志是否显示时间 时间=false(颜色)#自定义每类输出的颜色。如果找不到这个颜色,使用原本的日志输出演示。 主要=癿agenta"观察者=癱yan"构建=皔ellow"运动员=癵reen" (misc) #退出时是否删除临时目录 clean_on_exit=true
配置是简单明了的,请根据你的项目情况去调整。
最后,不要使用常用的<代码>运行> 代码去命令来运行去程序,而应使用空气<代码> 代码>命令来启动程序。
方法2:码头工人运行Ari
这种方法需要使用码头工人,如果你没有安装,可以按照
我们仍将使用空气库,因此仍然需要空气配置文件。如果你还没有,请创建一个配置文件。
码头工人镜像<代码> 代码>附cosmtrek/空气带安装了空气命令,并且GOPATH环境变量设置为<代码>/代码>。
我们只需要将我们的项目目录挂载到码头工人容器的GOPATH中,并使用- p暴露需要使用的端口即可。我们可以通过运行码头工人运行命令来实现这一点:
码头工人——运行——rm - w & lt; WORKING_DIR>- v & lt; PROJECT_FOLDER>: & lt; MOUNT_POINT>- p & lt; HOST_PORT>: & lt; CONTAINER_PORT>& lt; IMAGE_NAME>
就我而言,我需要运行以下命令:
码头工人——运行——rm - w/去/src/github.com/praveen001/live-reloading - v/去/src/github.com/praveen001/live-reloading:/去/src/github.com/praveen001/live-reloading - p 5000:5000 cosmtrek/空气
<强>解释:强>
使用- v参数将项目目录<代码>/home/praveen/去/src/github.com/praveen001/live-reloading> 代码挂载到容器里面的GOPATH中的目录<代码>/去/src/github.com/praveen001/live-reloading> 代码。
- v/home/praveen/go/src/github.com/praveen001/live-reloading:/去/src/github.com/praveen001/live-reloading
使用<代码> - w> 代码参数指定挂载目录成工作目录。
- w/去/src/github.com/praveen001/live-reloading
Web服务器正在监听端口5000,因此需要使用<代码> p> 代码标志将容器端口5000暴露到主机端口5000。
- p 5000:5000
最后,指定码头工人镜像名称