mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-14 20:37:55 -05:00
9f1265fde4
1de7a358c Clarify that "with" blocks do not render with empty values (#1287) b48de8b0a Update js.md e0124e4b1 Update js.md 087b39d74 Update hosting-on-render.md (#1286) 8f02b5412 Update js.md (#1284) 8dd8a8d1d Add link to "Build Websites with Hugo" book (#1174) ae2dc138a Fix typo in page bundles (#1283) ab14bfec3 Update configuration directory section 17da77ff1 Update multilingual.md (#1280) 5bce8db3a Fix for site-hierarchy image, issue #60 9d7a2366d Fix typo ad4210c41 Fix typo c88bc0383 Fix orphan branch url (#1262) 1cf6cf5b3 Hugo 0.78.2 538c3cb86 Merge branch 'tempv0.78.2' e5e07fc81 releaser: Add release notes to /docs for release of 0.78.2 120a61a47 Fixed wrong var assignment example 4cebbb1a7 Ignore remote JSON errors (for now) 618fcf9ba Add a link to modules config option 'replacements' e12722779 Fix typo ("wil" -> "will") (#1273) 0670e9894 Update js.md 5bde834cf Update GH docs to say "main" as default branch 26312f93d Update index.md eb6f51df1 Update js.md b890dc84d Merge branch 'tempv0.78.1' 6b73ea450 releaser: Add release notes to /docs for release of 0.78.1 46e582112 Update starter-kits.md (#1268) a62786235 Update 404 docs: GitLab auto-detects 404.html (#1173) cbd4fd2d9 Fix typo (#1271) 2ba3f9386 Update js.md 7b5109d90 Update js.md bc75bc962 Release 0.78.0 0b2e8b0f1 releaser: Add release notes to /docs for release of 0.78.0 9ecba8480 Merge commit 'b74591123eac47a20d1f26ff3e2d291cd9c5cfc0' 60a475df7 js: Add avoidTDZ option 3b895261f Make js.Build fully support modules git-subtree-dir: docs git-subtree-split: 1de7a358cac94ac09a513456bdaae65e6ae94859
143 lines
4.1 KiB
Markdown
143 lines
4.1 KiB
Markdown
---
|
|
title: Use Hugo Modules
|
|
linktitle: Use Hugo Modules
|
|
description: How to use Hugo Modules to build and manage your site.
|
|
date: 2019-07-24
|
|
categories: [hugo modules]
|
|
keywords: [install, themes, source, organization, directories,usage,modules]
|
|
menu:
|
|
docs:
|
|
parent: "modules"
|
|
weight: 20
|
|
weight: 20
|
|
sections_weight: 20
|
|
draft: false
|
|
aliases: [/themes/usage/,/themes/installing/,/installing-and-using-themes/]
|
|
toc: true
|
|
---
|
|
|
|
## Prerequisite
|
|
|
|
{{< gomodules-info >}}
|
|
|
|
|
|
|
|
## Initialize a New Module
|
|
|
|
Use `hugo mod init` to initialize a new Hugo Module. If it fails to guess the module path, you must provide it as an argument, e.g.:
|
|
|
|
```bash
|
|
hugo mod init github.com/gohugoio/myShortcodes
|
|
```
|
|
|
|
Also see the [CLI Doc](/commands/hugo_mod_init/).
|
|
|
|
## Use a Module for a Theme
|
|
The easiest way to use a Module for a theme is to import it in the config.
|
|
|
|
1. Initialize the hugo module system: `hugo mod init github.com/<your_user>/<your_project>`
|
|
2. Import the theme in your `config.toml`:
|
|
|
|
```toml
|
|
[module]
|
|
[[module.imports]]
|
|
path = "github.com/spf13/hyde"
|
|
```
|
|
|
|
## Update Modules
|
|
|
|
Modules will be downloaded and added when you add them as imports to your configuration, see [Module Imports](/hugo-modules/configuration/#module-config-imports).
|
|
|
|
To update or manage versions, you can use `hugo mod get`.
|
|
|
|
Some examples:
|
|
|
|
### Update All Modules
|
|
|
|
```bash
|
|
hugo mod get -u
|
|
```
|
|
|
|
### Update All Modules Recursively
|
|
|
|
{{< new-in "0.65.0" >}}
|
|
|
|
```bash
|
|
hugo mod get -u ./...
|
|
```
|
|
|
|
### Update One Module
|
|
|
|
```bash
|
|
hugo mod get -u github.com/gohugoio/myShortcodes
|
|
```
|
|
### Get a Specific Version
|
|
|
|
```bash
|
|
hugo mod get github.com/gohugoio/myShortcodes@v1.0.7
|
|
```
|
|
|
|
Also see the [CLI Doc](/commands/hugo_mod_get/).
|
|
|
|
## Make and test changes in a module
|
|
|
|
One way to do local development of a module imported in a project is to add a replace directive to a local directory with the source in `go.mod`:
|
|
|
|
```bash
|
|
replace github.com/bep/hugotestmods/mypartials => /Users/bep/hugotestmods/mypartials
|
|
```
|
|
|
|
If you have the `hugo server` running, the configuration will be reloaded and `/Users/bep/hugotestmods/mypartials` put on the watch list.
|
|
|
|
Note that since v.0.77.0 you can use modules config [`replacements`](https://gohugo.io/hugo-modules/configuration/#module-config-top-level) option. {{< new-in "0.77.0" >}}
|
|
|
|
## Print Dependency Graph
|
|
|
|
|
|
Use `hugo mod graph` from the relevant module directory and it will print the dependency graph, including vendoring, module replacement or disabled status.
|
|
|
|
E.g.:
|
|
|
|
```
|
|
hugo mod graph
|
|
|
|
github.com/bep/my-modular-site github.com/bep/hugotestmods/mymounts@v1.2.0
|
|
github.com/bep/my-modular-site github.com/bep/hugotestmods/mypartials@v1.0.7
|
|
github.com/bep/hugotestmods/mypartials@v1.0.7 github.com/bep/hugotestmods/myassets@v1.0.4
|
|
github.com/bep/hugotestmods/mypartials@v1.0.7 github.com/bep/hugotestmods/myv2@v1.0.0
|
|
DISABLED github.com/bep/my-modular-site github.com/spf13/hyde@v0.0.0-20190427180251-e36f5799b396
|
|
github.com/bep/my-modular-site github.com/bep/hugo-fresh@v1.0.1
|
|
github.com/bep/my-modular-site in-themesdir
|
|
|
|
```
|
|
|
|
Also see the [CLI Doc](/commands/hugo_mod_graph/).
|
|
|
|
## Vendor Your Modules
|
|
|
|
`hugo mod vendor` will write all the module dependencies to a `_vendor` folder, which will then be used for all subsequent builds.
|
|
|
|
Note that:
|
|
|
|
* You can run `hugo mod vendor` on any level in the module tree.
|
|
* Vendoring will not store modules stored in your `themes` folder.
|
|
* Most commands accept a `--ignoreVendorPaths` flag, which will then not use the vendored modules in `_vendor` for the module paths matching the [Glob](https://github.com/gobwas/glob) pattern given. Note that before Hugo 0.75 this flag was named `--ignoreVendor` and was a "all or nothing". {{< new-in "0.75.0" >}}
|
|
|
|
Also see the [CLI Doc](/commands/hugo_mod_vendor/).
|
|
|
|
|
|
## Tidy go.mod, go.sum
|
|
|
|
Run `hugo mod tidy` to remove unused entries in `go.mod` and `go.sum`.
|
|
|
|
Also see the [CLI Doc](/commands/hugo_mod_clean/).
|
|
|
|
## Clean Module Cache
|
|
|
|
Run `hugo mod clean` to delete the entire modules cache.
|
|
|
|
Note that you can also configure the `modules` cache with a `maxAge`, see [File Caches](/hugo-modules/configuration/#configure-file-caches).
|
|
|
|
|
|
|
|
Also see the [CLI Doc](/commands/hugo_mod_clean/).
|