@tylerbu/hugo-installer
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

hugo-installer

Installs Hugo into your repository.

npm version dependency status travis ci build status license



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

Readme

Keywords

Package Sidebar

Install

npm i @tylerbu/hugo-installer

Weekly Downloads

0

Version

1.1.0

License

MIT

Unpacked Size

19 kB

Total Files

11

Last publish

Collaborators

  • tylerbutler