Как остановить Go 1.11 от создания QuickTemplate .qtpl файлов? - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть несколько пакетов Go, которые используют quicktemplate .Quicktemplate компилирует файлы шаблонов с расширением .qtpl в файлы Go с расширением .qtpl.go с помощью приложения qtc CLI.В версиях Go до 1.11 наличие .qtpl файлов в пакете Go не было проблемой, поскольку файлы .qtpl игнорировались бы компилятором.Однако Go 1.11, по-видимому, обрабатывает .qtpl файлов, что приводит к ошибкам компиляции.

Пример, который работает с Go 1.3-1.10, но не 1.11, доступен здесь и описан ниже.

Каталог пакета содержит:

  • timeseries_page.qtpl файл шаблона
  • timeseries_page.qtpl.go файл шаблона, скомпилированный в 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 .

Тот же результат и выходные данные встречаются со следующим:

$ go run main.go
$ go test main.go

Есть ли способ вернутьпредыдущее поведение Go или игнорирование .qtpl файлов во время сборки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...