ejs-prerender

A tool for structured pre-rendering of EJS templates and partials

Usage no npm install needed!

<script type="module">
  import ejsPrerender from 'https://cdn.skypack.dev/ejs-prerender';
</script>

README

ejs-prerender

Usage

This package is typically used as a devDependency. Install by running npm i -D ejs-prerender. It can be used as an npm script like the following:

"build:templates": "ejs-prerender",

and run manually using npx:

npx ejs-prerender

This package utilizes the debug library, so adding DEBUG=ejs-prerender:* to a .env file or the command path (DEBUG=ejs-prerender:* npx ejs-prerender) will enable logging of everything.

Recommended File Structure

The following file structure works out-of-the-box with no customized environment variables.

root
├ components/
│ └ head.ejs
└ pages/
  ├ about/
  │ └ index.ejs
  └ index.ejs

will render as

root
└ public/
  ├ about/
  │ └ index.html
  └ index.html

The components can be simply referenced inside EJS pages as seen below:

<!DOCTYPE html>
<html>
  <head>
    <%- include('head') -%>
  </head>
  <body><h1>INDEX</h1></body>
</html>

Configuration

Environment Variables

Option Environment Variable Type Default Description
baseDir PEJS_BASE_DIR String current working directory Base directory to reference for other relative paths
outputDir PEJS_BUILD_OUTPUT_DIR String 'public' Where the completed pages get written
componentsDir PEJS_BUILD_COMPONENTS_DIR String 'components' Where components live
pagesDir PEJS_BUILD_PAGES_DIR String 'pages' Where pages live
pageExtension PEJS_BUILD_PAGES_EXT String 'ejs' File extension of pages