我有一些使用quicktemplate的Go软件包。 Quicktemplate使用.qtpl
CLI应用程序将扩展名为.qtpl.go
的模板文件编译为带有qtc
扩展名的Go文件。在1.11之前的Go版本中,在Go软件包中包含.qtpl
文件不是问题,因为.qtpl
文件将被编译器忽略。但是,Go 1.11似乎可以处理.qtpl
文件,从而导致编译失败。
此处提供了一个适用于Go 1.3-1.10但不适用于1.11的示例。
程序包目录包含:
timeseries_page.qtpl
模板文件timeseries_page.qtpl.go
模板文件已使用qtc
以前,仅以.go
结尾的文件将被编译,并且一切正常。在1.11中,解析.qtpl
文件时抛出了错误,该错误不是Go编译器要构建的。
这是一个使用该软件包的最小Go程序,它将无法在Go 1.11中构建,但可以在1.10上使用。
package main
import (
"github.com/grokify/gocharts/charts/c3"
)
func main() {
_ = c3.C3Chart{}
}
以下是显示timeseries_page.qtpl
文件的错误:
$ go build main.go
# github.com/grokify/gocharts/charts/c3
timeseries_page.qtpl:42: undefined: TimeseriesHTML
timeseries_page.qtpl:48: undefined: TimeseriesHTML
TimeseriesHTML
是在该模板文件中调用并由timeseries_js.qtpl.go
file中的另一个quicktemplate文件构建的函数。
以下内容会遇到相同的结果和输出:
$ go run main.go
$ go test main.go
是否有办法恢复以前的Go行为,或在构建过程中忽略.qtpl
文件?