mirror of
				https://github.com/gohugoio/hugo.git
				synced 2024-05-11 05:54:58 +00:00 
			
		
		
		
	
		
			
	
	
		
			123 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			123 lines
		
	
	
		
			3.3 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
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Prerequisites
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								{{% 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/).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## 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 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
							 | 
						||
| 
								 | 
							
								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. 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## 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 depencies 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 `--ignoreVendor` flag, which will then run as if the none of the `_vendor` folders in the module tree did not exist.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								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](/configuration/#configure-file-caches).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Also see the [CLI Doc](/commands/hugo_mod_clean/).
							 |