

You can check that the install process ran correctly by typing pug -version into a terminal. Once Node and npm are installed on your system, you can install the pug-cli package like so: npm i -g pug-cli You can check out our tutorial “ Installing Multiple Versions of Node.js Using nvm” for a more in-depth guide. It will also negate a bunch of potential permissions errors. I would recommend using a version manager where possible, as this will allow you to install different Node versions and switch between them at will. Either head on over to the project’s home page and download the correct binaries for your system, or use a version manager such as nvm. There’s a couple options for installing Node/npm. Finally, we’ll explore a couple of Pug’s more advanced features by building a simple Node/Express project which uses Pug as its template engine.īefore we can get to writing some Pug, we’ll need to install Node, npm (which comes bundled with Node) and the pug-cli package. We’ll start by installing it from npm, go over its basic syntax and then look at several examples of using JavaScript in Pug. In this guide, I’ll demonstrate how to get up and running with Pug. Pug makes it easy both to write reusable HTML, as well as to render data pulled from a database or API. It compiles to HTML and has a simplified syntax, which can make you more productive and your code more readable. Pug is a template engine for Node and for the browser. This can be a nightmare to debug and to maintain. HTML is also static, which means that if you want to display dynamic data (fetched from an API, for example), you invariably end up with a mishmash of HTML stings inside JavaScript. This is where the Pug HTML preprocessor comes in.

And while this is not the most difficult task, it can often feel a little boring or repetitive.

As web designers or developers, we likely all have to write our fair share of HTML.
