Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Build 生成后删除.a文件-GoLang_Build_Go_Refresh - Fatal编程技术网

Build 生成后删除.a文件-GoLang

Build 生成后删除.a文件-GoLang,build,go,refresh,Build,Go,Refresh,目前,我正在使用在项目中任何源文件的每次更改时重建和重新启动Web服务器 它工作正常。但是,经过一段时间后,将在pkg目录中创建文件。这导致刷新不再发生,原因是它没有获取源文件(.go文件)来构建二进制文件,而是获取.a文件。如何避免此功能 添加信息: 文件:runner.conf与main.go处于同一级别 root: . tmp_path: ./tmp build_name: bin/app.bin build_log: runner-build-errors.log valid_ext:

目前,我正在使用在项目中任何源文件的每次更改时重建和重新启动Web服务器

它工作正常。但是,经过一段时间后,将在pkg目录中创建文件。这导致刷新不再发生,原因是它没有获取源文件(.go文件)来构建二进制文件,而是获取.a文件。如何避免此功能

添加信息:

文件:runner.conf与main.go处于同一级别

root: .
tmp_path: ./tmp
build_name: bin/app.bin
build_log: runner-build-errors.log
valid_ext: .go, .tpl, .tmpl, .html
build_delay: 600
colors: 1
log_color_main: cyan
log_color_build: yellow
log_color_runner: green
log_color_watcher: magenta
log_color_app:
ignore_dirs: ./pkg
根本不起作用:

13:39:48 watcher     | Watching .
13:39:48 watcher     | Watching bin
13:39:48 watcher     | Watching pkg
13:39:48 watcher     | Watching pkg/darwin_amd64
13:39:48 watcher     | Watching public
13:39:48 watcher     | Watching src
13:39:48 watcher     | Watching src/site.org
13:39:48 watcher     | Watching src/site.org/application
13:39:48 watcher     | Watching src/site.org/application/controllers
13:39:48 watcher     | Watching src/site.org/application/controllers/web
13:39:48 watcher     | Watching src/site.org/system
固定

最后,我没能让它工作。但是,我使用此插件创建了一个解决方案:

它试图在save的基础上构建,我创建了这个构建系统(称为GoLang):

文件build_go.sh是:

#!/bin/sh
echo "Removing PKG folder if exists"
rm -Rf pkg

echo "Building application"
go build -o bin/app.bin main.go

echo "Killing application"
killall app.bin

echo "Running application ./bin/app.bin"
echo ""
echo "Debug information:"
echo ""

./bin/app.bin
一个@TODO将在项目配置中定义二进制文件的名称。。。但对我来说,这没问题。这样做的好处之一是您不必添加-a标志,这将降低编译过程的速度,调试信息将显示在构建窗口中

考虑到“添加了忽略dirs设置”,您可以使用该新设置显式忽略
pkg
文件夹

ignore_dirs path1, path2, ...
:


您可以更改$GOPATH/src/github.com/pilu/fresh/runner/build.go#L13

将来

然后

go install -a github.com/pilu/fresh

flag-强制重新编译文件runner.conf中的.a文件

此:
忽略目录:./pkg
也尝试了此
忽略目录:pkg
,但未成功working@Cito是的,我不确定你需要放在那里的确切路径。这取决于
info.Name()
的值。谢谢。我会继续尝试。我会将其标记为有效,因为“-a”标志是已修复的标志,但它不是真正有效的,因为该功能已经有了拉动:然而,最后,我为该功能创建了自己的构建系统,并使用插件在保存时自动构建
if info.IsDir() && !isTmpDir(path) {
    if _, ignore := ignorePaths[info.Name()]; (len(path) > 1 && 
       strings.HasPrefix(filepath.Base(path), ".")) || ignore {
        return filepath.SkipDir
cmd := exec.Command("go", "build", "-o", buildPath(), root())
cmd := exec.Command("go", "build", "-a", "-o", buildPath(), root())
go install -a github.com/pilu/fresh