{"TextWidth": 40}
-- input --
If the arguments have version suffixes (like @latest or @v1.0.0), "go install"
builds packages in module-aware mode, ignoring the go.mod file in the current
directory or any parent directory, if there is one. This is useful for
installing executables without affecting the dependencies of the main module.
To eliminate ambiguity about which module versions are used in the build, the
arguments must satisfy the following constraints:

 - Arguments must be package paths or package patterns (with "..." wildcards).
 They must not be standard packages (like fmt), meta-patterns (std, cmd,
 all), or relative or absolute file paths.

 - All arguments must have the same version suffix. Different queries are not
 allowed, even if they refer to the same version.

 - All arguments must refer to packages in the same module at the same version.

 - Package path arguments must refer to main packages. Pattern arguments
 will only match main packages.

 - No module is considered the "main" module. If the module containing
 packages named on the command line has a go.mod file, it must not contain
 directives (replace and exclude) that would cause it to be interpreted
 differently than if it were the main module. The module must not require
 a higher version of itself.

 - Vendor directories are not used in any module. (Vendor directories are not
 included in the module zip files downloaded by 'go install'.)

If the arguments don't have version suffixes, "go install" may run in
module-aware mode or GOPATH mode, depending on the GO111MODULE environment
variable and the presence of a go.mod file. See 'go help modules' for details.
If module-aware mode is enabled, "go install" runs in the context of the main
module.
-- text --
If the arguments have version suffixes
(like @latest or @v1.0.0), "go install"
builds packages in module-aware mode,
ignoring the go.mod file in the current
directory or any parent directory,
if there is one. This is useful for
installing executables without affecting
the dependencies of the main module.
To eliminate ambiguity about which
module versions are used in the build,
the arguments must satisfy the following
constraints:

  - Arguments must be package paths
    or package patterns (with "..."
    wildcards). They must not be
    standard packages (like fmt),
    meta-patterns (std, cmd, all),
    or relative or absolute file paths.

  - All arguments must have the same
    version suffix. Different queries
    are not allowed, even if they refer
    to the same version.

  - All arguments must refer to packages
    in the same module at the same
    version.

  - Package path arguments must refer
    to main packages. Pattern arguments
    will only match main packages.

  - No module is considered the "main"
    module. If the module containing
    packages named on the command line
    has a go.mod file, it must not
    contain directives (replace and
    exclude) that would cause it to be
    interpreted differently than if it
    were the main module. The module
    must not require a higher version of
    itself.

  - Vendor directories are not used in
    any module. (Vendor directories are
    not included in the module zip files
    downloaded by 'go install'.)

If the arguments don't have version
suffixes, "go install" may run in
module-aware mode or GOPATH mode,
depending on the GO111MODULE environment
variable and the presence of a go.mod
file. See 'go help modules' for details.
If module-aware mode is enabled,
"go install" runs in the context of the
main module.
