@tylerbu/hugo-installer v1.1.0
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-devHow 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
.gitignorefile!
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.jsonAlternatively, 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: dominique.m.mueller@gmail.com
- Website: www.devdom.io
- Twitter: @itsdevdom
5 years ago