@tylerbu/hugo-installer
v1.1.0
Published
Installs hugo into your repository.
Downloads
5
Readme
hugo-installer
Installs Hugo into your repository.
What it does
Hugo is one of the most popular static site generators. Now, when it comes to web development, we usually select npm as our dependency management solution. Hugo, however, is a tool written in Go. As a consequence, Hugo is not integrated into the npm module ecosystem - but instead delivered as a binary.
The Hugo Installer is here to help! It's a small node script which can be used to fetch a specific Hugo binary, for instance using the
postinstall
hook within a package.json
file.
I've written this small tool because I'm developing my own personal website using Hugo, and I wanted to have a simple way of seeing the current Hugo version / simply upgrading Hugo to a newer version.
How to install
You can get the hugo-installer via npm by adding it as a new devDependency to your package.json
file and running
npm install
. Alternatively, run the following command:
npm install hugo-installer --save-dev
How to use
We recommended to use the hugo-installer within the postinstall
hook of a project's package.json
file.
Configure hugo version (required)
The Hugo version can be set using the --version
CLI parameter. For example:
{
"scripts": {
"postinstall": "hugo-installer --version 0.46"
}
}
As an alternative, the --version
CLI parameter can also be an object path to some value defined in the package.json
file. This
allows for the hugo version to be configured someplace else, e.g. in a otherDependencies
object:
{
"otherDependencies": {
"hugo": "0.46"
},
"scripts": {
"postinstall": "hugo-installer --version otherDependencies.hugo"
}
}
Configure binary path (optional)
The --destination
CLI parameter can be used to define the folder into which the Hugo binary will be placed. This parameter is optional,
the default destination path is bin/hugo
. For example:
{
"scripts": {
"postinstall": "hugo-installer --version 0.46 --destination bin/hugo"
}
}
Don't forget to add the destination path to your
.gitignore
file!
Using the Hugo binary
Once fetched, the hugo binary can be used directly from your favourite command line. For example:
bin/hugo/hugo.exe --config=hugo.config.json
Alternatively, one might also want to integrate Hugo in a NodeJS build script, or a NodeJS-based build tool such as
Gulp. You can execute the Hugo binary using the spawn
command; for example:
const path = require( 'path' );
const spawn = require( 'child_process' ).spawn;
// Use Hugo
spawn( path.resolve( process.cwd(), 'bin', 'hugo', 'hugo' ), [
`--config=hugo.config.json`
], {
stdio: 'inherit'
} )
.on( 'close', () => {
// Callback
} );
Creator
Dominique Müller
- E-Mail: [email protected]
- Website: www.devdom.io
- Twitter: @itsdevdom