Как узнать, откуда взять пакеты? - PullRequest
0 голосов
/ 24 мая 2019

Когда я импортирую пакет в приложение go (используя модули и vscode с плагином golang):

import (
   cors "goa.design/plugins/cors/dsl"
)

go автоматически получает пакет.Как узнать, откуда его взять?Я полагал, что он просто извлекает источники из github.com, но репозиторий для этого проекта находится в https://github.com/goadesign/goa, а не . в названии.И если я изменю импорт на:

import (
   cors "goa.design/plugins/v3/cors/dsl"
)

, он получит пакет v3.Я бы с удовольствием RTFM, но не уверен, какой FM мне нужно читать.

Кстати: это мой второй день на go, так что это волшебство для меня.

1 Ответ

7 голосов
/ 24 мая 2019

Все просто, зацените:

$> curl https://goa.design/plugins/cors/dsl
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en-us">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">


  <meta name="go-import" content="goa.design/plugins git https://github.com/goadesign/plugins">
  <meta name="go-source" content="goa.design/plugins _ https://github.com/goadesign/plugins/tree/master/{/dir} https://github.com/goadesign/plugins/blob/master{/dir}/{file}#L{line}">

Ключ здесь находится в теге с именем "go-import". Когда go get запрашивает https://goa.design/...,, он попадает в этот HTML-файл и знает, что "goa.design / ...." необходимо получить с помощью git из https://github.com/goadesign/plugins.

Вот хорошая статья

...