HUGO

  • News
  • Docs
  • Themes
  • Showcase
  • Community
  • GitHub
    • English
    • 中文

What's on this Page

  • Prerequisite
  • Initialize a New Module
  • Update Modules
    • Update All Modules
    • Update All Modules Recursively
    • Update One Module
    • Get a Specific Version
  • Make and test changes in a module
  • Print Dependency Graph
  • Vendor Your Modules
  • Tidy go.mod, go.sum
  • Clean Module Cache
HUGO MODULES

Use Hugo Modules

How to use Hugo Modules to build and manage your site.

Prerequisite

Most of the commands for Hugo Modules requires a newer version of Go installed (see https://golang.org/dl/) and the relevant VCS client (e.g. Git, see https://git-scm.com/downloads). If you have an “older” site running on Netlify, you may have to set GO_VERSION to 1.12 in your Environment settings.

For more information about Go Modules, see:

  • https://github.com/golang/go/wiki/Modules
  • https://blog.golang.org/using-go-modules

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.:

hugo mod init github.com/gohugoio/myShortcodes

Also see the CLI Doc.

Update Modules

Modules will be downloaded and added when you add them as imports to your configuration, see Module Imports.

To update or manage versions, you can use hugo mod get.

Some examples:

Update All Modules

hugo mod get -u

Update All Modules Recursively

hugo mod get -u ./...

Update One Module

hugo mod get -u github.com/gohugoio/myShortcodes

Get a Specific Version

hugo mod get github.com/gohugoio/myShortcodes@v1.0.7

Also see the CLI Doc.

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:

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.

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.

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 existed.

Also see the CLI Doc.

Tidy go.mod, go.sum

Run hugo mod tidy to remove unused entries in go.mod and go.sum.

Also see the CLI Doc.

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.

Also see the CLI Doc.

See Also

  • Configure Modules
  • Theme Components
  • Directory Structure
  • Static Files
  • External Learning Resources
  • About Hugo
    • Overview
    • Hugo's Security Model
    • Hugo and GDPR
    • What is Hugo
    • Hugo Features
    • The Benefits of Static
    • License
  • Getting Started
    • Get Started Overview
    • Quick Start
    • Install Hugo
    • Basic Usage
    • Directory Structure
    • Configuration
    • External Learning Resources
  • Hugo Modules
    • Hugo Modules Overview
    • Configure Modules
    • Use Hugo Modules
    • Theme Components
  • Content Management
    • Content Management Overview
    • Organization
    • Page Bundles
    • Content Formats
    • Front Matter
    • Build Options
    • Page Resources
    • Image Processing
    • Shortcodes
    • Related Content
    • Sections
    • Content Types
    • Archetypes
    • Taxonomies
    • Summaries
    • Links and Cross References
    • URL Management
    • Menus
    • Static Files
    • Table of Contents
    • Comments
    • Multilingual and i18n
    • Syntax Highlighting
  • Templates
    • Templates Overview
    • Introduction
    • Template Lookup Order
    • Custom Output Formats
    • Base Templates and Blocks
    • List Page Templates
    • Homepage Template
    • Section Templates
    • Taxonomy Templates
    • Single Page Templates
    • Content View Templates
    • Data Templates
    • Partial Templates
    • Shortcode Templates
    • Local File Templates
    • 404 Page
    • Menu Templates
    • Pagination
    • RSS Templates
    • Sitemap Template
    • Robots.txt
    • Internal Templates
    • Alternative Templating
    • Template Debugging
  • Functions
    • Functions Quick Reference
    • .AddDate
    • .Format
    • .Get
    • .GetPage
    • .HasMenuCurrent
    • .IsMenuCurrent
    • .Param
    • .Render
    • .RenderString
    • .Scratch
    • .Unix
    • absLangURL
    • absURL
    • after
    • anchorize
    • append
    • apply
    • base64
    • chomp
    • complement
    • cond
    • countrunes
    • countwords
    • dateFormat
    • default
    • delimit
    • dict
    • echoParam
    • emojify
    • eq
    • errorf and warnf
    • fileExists
    • findRE
    • first
    • float
    • ge
    • getenv
    • group
    • gt
    • hasPrefix
    • highlight
    • htmlEscape
    • htmlUnescape
    • hugo
    • humanize
    • i18n
    • Image Functions
    • in
    • index
    • int
    • intersect
    • isset
    • jsonify
    • lang.Merge
    • lang.NumFmt
    • last
    • le
    • lower
    • lt
    • markdownify
    • Math
    • md5
    • merge
    • ne
    • now
    • os.Stat
    • partialCached
    • path.Base
    • path.Dir
    • path.Ext
    • path.Join
    • path.Split
    • plainify
    • pluralize
    • print
    • printf
    • println
    • querify
    • range
    • readDir
    • readFile
    • ref
    • reflect.IsMap
    • reflect.IsSlice
    • relLangURL
    • relref
    • relURL
    • replace
    • replaceRE
    • safeCSS
    • safeHTML
    • safeHTMLAttr
    • safeJS
    • safeURL
    • seq
    • sha
    • shuffle
    • singularize
    • slice
    • slicestr
    • sort
    • split
    • string
    • strings.HasSuffix
    • strings.Repeat
    • strings.RuneCount
    • strings.TrimLeft
    • strings.TrimPrefix
    • strings.TrimRight
    • strings.TrimSuffix
    • substr
    • symdiff
    • templates.Exists
    • time
    • title
    • transform.Unmarshal
    • trim
    • truncate
    • union
    • uniq
    • upper
    • urlize
    • urls.Parse
    • where
    • with
  • Variables
    • Variables Overview
    • Site Variables
    • Page Variables
    • Shortcode Variables
    • Pages Methods
    • Taxonomy Variables
    • File Variables
    • Menu Entry Properties
    • Hugo Variables
    • Git Variables
    • Sitemap Variables
  • Hugo Pipes
    • Hugo Pipes Overview
    • Hugo Pipes Introduction
    • SASS / SCSS
    • PostCSS
    • Asset minification
    • Asset bundling
    • Fingerprinting and SRI
    • Resource from Template
    • Resource from String
  • CLI
  • Troubleshooting
    • Troubleshoot
    • FAQ
    • Build Performance
  • Tools
    • Developer Tools Overview
    • Migrations
    • Starter Kits
    • Frontends
    • Editor Plug-ins
    • Search
    • Other Projects
  • Hosting & Deployment
    • Hosting & Deployment Overview
    • Hugo Deploy
    • Host-Agnostic Deploys with Nanobox
    • Host on AWS Amplify
    • Host on Netlify
    • Host on Render
    • Host on Firebase
    • Host on GitHub
    • Host on GitLab
    • Hosting on KeyCDN
    • Host on Bitbucket
    • Deployment with Wercker
    • Deployment with Rsync
  • Contribute
    • Contribute to Hugo
    • Development
    • Documentation
    • Themes
  • Maintenance
“Use Hugo Modules” was last updated: March 23, 2020: first commit (affc25d)
Improve this page
By the Hugo Authors
Hugo Logo
  • File an Issue
  • Get Help
  • Discuss Source Code
  • @GoHugoIO
  • @spf13
  • @bepsays

Netlify badge

 
 

Hugo Sponsors

Logo for Forestry.io
Logo for Linode
Logo for eSolia
 

The Hugo logos are copyright © Steve Francia 2013–2020.

The Hugo Gopher is based on an original work by Renée French.

  • News
  • Docs
  • Themes
  • Showcase
  • Community
  • GitHub
  • About Hugo
  • Getting Started
  • Hugo Modules
  • Content Management
  • Templates
  • Functions
  • Variables
  • Hugo Pipes
  • CLI
  • Troubleshooting
  • Tools
  • Hosting & Deployment
  • Contribute
  • Maintenance